Es6依据某个属性将数组分组:
比方如下数组,将依据sex字段来分组,sex为男的放到一起,为女的放到一起:
次要代码如下:
const array = [{
id: 1,
name: '小明',
sex: '男'
},
{
id: 3,
name: '小红',
sex: '女'
},
{
id: 2,
name: '小刚',
sex: '男'
},
{
id: 4,
name: '小花',
sex: '女'
},
{
id: 5,
name: '小甜甜',
sex: '女'
},
];
function getList(list) {
const map = new Map()
list.forEach((item, index, arr) => {
if (!map.has(item.sex)) { map.set( item.sex, arr.filter(a => a.sex == item.sex) )}
})
return Array.from(map).map(item => [...item[1]])
}
const list = getList(array)
console.log(array, '分组前');
console.log(list, '分组后');