一、数据类型
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]
})
案例
/**
* @param {Object} array 分类数组对象
* @param {Object} fun 匿名函数
*/
function groupBy( array , fun ) {
let groups = {};
array.forEach( function( o ) {
let group = JSON.stringify( fun(o) );//分组的字段值作为Key
groups[group] = groups[group] || [];//定义对象Key
groups[group].push( o );//将数组内每个对象定义成Key value的形式
});
//对对象分组 返回,即完成分组
return Object.keys(groups).map( function( group ) {
return groups[group];
});
}
//定义匿名函数 功能:返回要进行分组的对象value
let fun=function(item){
let index=item.fieldNames.indexOf('类型');
return item.fieldValues[index];
}
let sorted = groupBy(obj.features,fun);