我有这样的代码:
const arr = [{name: 'fred', age: 20}, {name: 'john', age: 50}]
const result = arr.reduce((acc, item) => {
acc[item.name] = item.age
return acc
}, {})
console.log(result)
如何将下面的两行变成一行?
acc[item.name] = item.age
return acc
使用扩展语法(...
)将item
与您的新键/值结合起来,然后使用({})
直接返回对象:
您也可以使用析构赋值来获得name
和age
作为单独的变量,而不是item
,参见注释行中的示例。
const arr = [{name: 'fred', age: 20}, {name: 'john', age: 50}]
const result = arr.reduce((acc, item) => ({ ...acc, [item.name]: item.age }), {})
// Or with a destructuring assignment
// arr.reduce((acc, { name, age }) => ({ ...acc, [name]: age }), {})
console.log(result)