數組對象如何根據對象中某個字段分組

場景:作報表圖形展現時,接口返回的數據一般爲一組數據對象,須要根據code進行分組,將數據分類成幾組,用圖形描繪出來數組

措施:代碼以下spa

返回數組對象包括name和data兩個字段,data中包括原數組對象中全部字段。code

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;
        }
相關文章
相關標籤/搜索