美文网首页高级JS
Js对数据实现分组GroupBy特性

Js对数据实现分组GroupBy特性

作者: 郭海杰 | 来源:发表于2020-05-09 22:47 被阅读0次

一个用于分组的代码片段(有注释)

let list = [{
     "name": "John",
     "Average": 15,
     "High": 10,
     "DtmStamp": 1358226000000
},
{
     "name": "Jane",
     "Average": 16,
     "High": 92,
     "DtmStamp": 1358226000000
},
{
     "name": "Jane",
     "Average": 17,
     "High": 45,
     "DtmStamp": 1358226000000
},
{
     "name": "John",
     "Average": 18,
     "High": 87,
     "DtmStamp": 1358226000000
},
{
     "name": "Jane",
     "Average": 15,
     "High": 10,
     "DtmStamp": 1358226060000
},
{
     "name": "John",
     "Average": 16,
     "High": 87,
     "DtmStamp": 1358226060000
},
{
     "name": "John",
     "Average": 17,
     "High": 45,
     "DtmStamp": 1358226060000
},
{
     "name": "Jane",
     "Average": 18,
     "High": 92,
     "DtmStamp": 1358226060000
}
];

function GroupBy(array, fn) {
debugger;
const groups = {};
array.forEach(function (item) {
     const group = JSON.stringify(fn(item));
     //这里利用对象的key值唯一性的,创建数组
     groups[group] = groups[group] || [];
     groups[group].push(item);
});
//最后再利用map循环处理分组出来
return Object.keys(groups).map(function (group) {
     return groups[group];
});
}

//这里如果想要按照name进行分组即如下:
const results = GroupBy(list, function (item) {
return [item.name];
});

console.log(results)

相关文章

网友评论

    本文标题:Js对数据实现分组GroupBy特性

    本文链接:https://www.haomeiwen.com/subject/itrrnhtx.html