数组对象如何根据对象中某个字段分组
场景:做报表图形展示时,接口返回的数据通常为一组数据对象,需要根据code进行分组,将数据分类成几组,用图形描绘出来
措施:代码如下
返回数组对象包括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; }