从数组中返回具有相同键和值的对象

时间:2018-09-28 06:31:40

标签: javascript ecmascript-6

[1,2].reduce((accum,val) => ({val}) ,{})

我希望上述reduce函数将返回{1:1, 2:2},但没有,怎么了?我还没有返回对象吗?

4 个答案:

答案 0 :(得分:5)

您需要分发累加器(使用较新的JS或babeljs)和computed property names

console.log([1, 2].reduce((accum, val) => ({ ...accum, [val]: val }), {}));

答案 1 :(得分:0)

[1,2].reduce((accum,val) => { accum[val] = val
return accum } ,{})

这可以解决问题。您没有引用起始对象。

答案 2 :(得分:0)

一种选择是使用Object.assign添加新的属性和值

var result = [1, 2].reduce((accum, val) => Object.assign(accum, {[val]: val}), {})
console.log(result);

文档:Object.assign

答案 3 :(得分:0)

使用可以这样写: 您需要分配累加器值。

[1,2].reduce((accum,val) => ({...accum, [val]:val}) ,{})