js对数据分组类似Sql语句group by

一、数据类型

groups = [
  {
    
    "name": "1", "age": 15},
  {
    
    "name": "1", "age": 16},
  {
    
    "name": "2", "age": 17},
  {
    
    "name": "2", "age": 18},
];

二、定义分组函数groupBy

groupBy(array, f) {
    
    
  const groups = {
    
    };
  array.forEach(function (o) {
    
    
    const group = JSON.stringify(f(o));
    groups[group] = groups[group] || [];
    groups[group].push(o);
  });
  return Object.keys(groups).map(function (group) {
    
    
    return groups[group];//返回数组
  });
  // return groups;//返回对象
}

三、使用分组函数groupBy

let groupData = _this.groupBy(groups, (link) => {
    
    
	return [link.name]
})

猜你喜欢

转载自blog.csdn.net/firstlt0217/article/details/112318589