You can use Array#reduce and ES6 destructuring assignment.
// extract value and label property 
let res = options.reduce((obj, { value, label }) => {  
  // define the propery value
  obj[label] = value;
  //  return for next iteration
  return obj;
  // set initial value as an empty object
}, {})
const options = [{
    value: 'opt1',
    label: 'Lopt1'
  },
  {
    value: 'opt2',
    label: 'Lopt2'
  },
  {
    value: 'opt3',
    label: 'Lopt3'
  },
  {
    value: 'opt4',
    label: 'Lopt4'
  }
];
let res = options.reduce((obj, { value, label }) => {
  obj[label] = value;
  return obj;
}, {})
console.log(res);
 
 
Much more shortest by using ES6 spread syntax.
let res = options.reduce((obj, { value, label }) => ({ [label] : value, ...obj }), {});
Or
let res = options.reduce((obj, { value, label }) => (obj[label] = value, obj), {});
const options = [{
    value: 'opt1',
    label: 'Lopt1'
  },
  {
    value: 'opt2',
    label: 'Lopt2'
  },
  {
    value: 'opt3',
    label: 'Lopt3'
  },
  {
    value: 'opt4',
    label: 'Lopt4'
  }
];
let res = options.reduce((obj, {
  value,
  label
}) => ({
  [label]: value,
  ...obj
}), {});
let res1 = options.reduce((obj, {
  value,
  label
}) => (obj[label] = value, obj), {});
console.log(res, res1);