[1,2].reduce((accum,val) => ({val}) ,{})
我希望上述reduce函数将返回{1:1, 2:2}
,但没有,怎么了?我还没有返回对象吗?
答案 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);
答案 3 :(得分:0)
使用可以这样写: 您需要分配累加器值。
[1,2].reduce((accum,val) => ({...accum, [val]:val}) ,{})