0

因此,我正在阅读有关 JavaScript 中 .reduce 方法的 MDN 文档,我很难理解累加器 (acc) 发生了什么。我期待累加器在循环通过 objectArray(下)时根据年龄填充/分组。我附上了控制台输出的图片,您可以看到 acc 已经填充/分组。任何帮助将不胜感激。

MDN .reduce:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

let people = [
  { name: 'Alice', age: 21 },
  { name: 'Max', age: 20 },
  { name: 'Jane', age: 20 }
];

function groupBy(objectArray, property) {
  return objectArray.reduce(function (acc, obj) {
    console.log('acc',acc) //line not in MDN docs
    let key = obj[property]
    if (!acc[key]) {
      acc[key] = []
    }
    acc[key].push(obj)
    return acc
  }, {})
}

let groupedPeople = groupBy(people, 'age')
// groupedPeople is:
// {
//   20: [
//     { name: 'Max', age: 20 },
//     { name: 'Jane', age: 20 }
//   ],
//   21: [{ name: 'Alice', age: 21 }]
// }

控制台输出: 截图

4

0 回答 0