ES6 提供了 Map 数据结构,即“值—值”的对应,是一种更完善的 Hash 结构实现。在实际的项目中可以用作数据的分类汇总,如下面的实例,将同一姓名的学生的学科分数做汇总:
const arr = [
{id: 1, name: 'Jack', Chinese: 99},
{id: 2, name: 'Jack', English: 88},
{id: 3, name: 'Jack', Math: 90},
{id: 4, name: 'Tom', Chinese: 80},
{id: 5, name: 'Tom', English: 70},
{id: 6, name: 'Tom', Math: 60},
{id: 7, name: 'Lily', Chinese: 100},
{id: 8, name: 'Lily', English: 96,},
];
const map = new Map();
arr.map(item => {
if(map.get(item.name)) {
map.get(item.name).push(item);
} else {
let newArr = [];
newArr.push(item)
map.set(item.name, newArr);
}
});
console.log(map);
输出结果为: