【发布时间】:2019-08-11 20:24:46
【问题描述】:
我对以下代码行的含义感到困惑:
if(!acc[key])
这是我对这行的解释:
如果key不在acc中,则将key设置为value数组并跳出if语句。然后将obj推入acc键值。
如果key在acc中,跳过if语句并使用另一个内存acc[key]并设置key在acc中并使用obj设置值。 (需要大修)
我的解释正确吗?
var people = [{
name: 'Alice',
age: 21
},
{
name: 'Max',
age: 20
},
{
name: 'Jane',
age: 20
}
];
function groupBy(objectArray, property) {
return objectArray.reduce(function(acc, obj) {
var key = obj[property];
if (!acc[key]) {
acc[key] = [];
acc[key].push(obj)
}
return acc;
}, {});
}
var groupedPeople = groupBy(people, 'age')
console.log(JSON.stringify(groupedPeople))
【问题讨论】:
标签: javascript arrays object ecmascript-6