snippet for creating object from destructured array

Viewed 186

For example, I had an array with 3 numbers:

var arr = [124, -50, 24];

and I need to convert this array to the object:

{
   x: 124,
   y: -50,
   z: 24
}

I don`t want to use "old-style" syntax for this, for example:

{
  x: arr[0],
  y: arr[1],
  z: arr[2]
}

so for now, I`m using that syntax:

const [x, y, z] = [...arr];
const obj = {x, y, z};

But, is there is any way to do this with a straight dectructuring array to object without need of temporary variables?

3 Answers

You can also do

const obj = {};
([obj.x, obj.y, obj.z] = arr);

to avoid the temporary variables, but I'd question whether that's an improvement.

As it was already mentioned in the comment you can use an Immediately Invoked Function Expression (IIFE) to create the object in a single step, but it's less readable then multiple steps.

const arr = [124, -50, 24];
const obj = (([x, y, z]) => ({ x, y, z }))(arr);

console.log(obj);

Related