【发布时间】:2018-03-07 16:24:09
【问题描述】:
例如,我有一个包含 3 个数字的数组:
var arr = [124, -50, 24];
我需要将此数组转换为对象:
{
x: 124,
y: -50,
z: 24
}
我不想为此使用“旧式”语法,例如:
{
x: arr[0],
y: arr[1],
z: arr[2]
}
所以现在,我正在使用该语法:
const [x, y, z] = [...arr];
const obj = {x, y, z};
但是,有没有什么方法可以直接解构数组到对象而不需要临时变量?
【问题讨论】:
-
我的头顶
var obj = (([x,y,z]) => ({x,y,z}))(arr); -
@JaromandaX: 一样吗?一样的吗?
-
It remains only to understand what is going on there@VladPovalii 它是箭头函数([x,y,z]) => ({x,y,z})的 IIFE。但是imo你应该存储这个函数const arr2point = ([x,y,z]) => ({x,y,z});并使用那个const obj = arr2point(arr)而不是使用IIFE内联。
标签: javascript arrays ecmascript-6