是否可以这样做:
const foo = [1, 2];
const bar = {
a: foo[0],
b: foo[1],
c: 'something else not in array'
};
作为单个语句,是否无需声明foo
?
例如,数组可以是
的结果"1, 2".split(', ')
并且您要避免使用临时变量声明,而使用"1"
和"2"
作为新对象中两个属性(可能不是唯一的属性)的值。
我可以想像像这样的东西,尽管由于种种原因都不可行:
const bar { a, b, c: 'something else not in array' } = [1, 2];
或
const bar { a:[0], b:[1], c: 'something else not in array' } = [1, 2];
编辑: 我发现不使用IIFE的最接近的是
Object.assign({c: 'something else not in array'}, [1, 2])
它具有负数,而不是属性“ a”和“ b”,而是属性“ 0”和“ 1”:
{0: 1, 1: 2, c: "something else not in array"}
答案 0 :(得分:1)
Yes, using an IIFE:
const bar = (([a, b]) => ({ a, b, c: "other props" }))([1, 2]);
答案 1 :(得分:0)
如果恰好涉及两个属性/值,那么reduce
也可以工作:
const bar = [1, 2].reduce((a, b) => ({ a, b, c: "other"}));