用于从析构数组创建对象的代码段

Vla*_*lii 11 javascript arrays ecmascript-6

例如,我有一个包含3个数字的数组:

var arr = [124, -50, 24];
Run Code Online (Sandbox Code Playgroud)

我需要将此数组转换为对象:

{
   x: 124,
   y: -50,
   z: 24
}
Run Code Online (Sandbox Code Playgroud)

我不想为此使用"旧式"语法,例如:

{
  x: arr[0],
  y: arr[1],
  z: arr[2]
}
Run Code Online (Sandbox Code Playgroud)

所以现在,我正在使用这种语法:

const [x, y, z] = [...arr];
const obj = {x, y, z};
Run Code Online (Sandbox Code Playgroud)

但是,有没有办法用直接的解构数组来对象而不需要临时变量?

Ori*_*ori 1

正如评论中已经提到的,您可以使用立即调用函数表达式 (IIFE)在一个步骤中创建对象,但它的可读性不如多个步骤。

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

console.log(obj);
Run Code Online (Sandbox Code Playgroud)