返回数组对象包括name和data两个字段,data中包括原数组对象中所有字段。
function groupByType(arr,param) {
var map = {},
dest = [];
for(var i = 0; i < arr.length; i++){
var ai = arr[i];
if(ai[param] && !map[ai[param]]){
dest.push({
name: ai[param],
data: [ai]
});
map[ai[param]] = ai;
}else{
for(var j = 0; j < dest.length; j++){
var dj = dest[j];
if(dj.name == ai[param]){
dj.data.push(ai);
break;
}
}
}
}
return dest;
}