1. 程式人生 > 其它 >多個欄位分組

多個欄位分組

/**
 * 
 * @param {*} array  分組的數租集合
 * @param {*} keyArry 分組欄位集合
 * @param {*} resKey  分組裡的資料自定義欄位名稱
 * @returns 
 */
//  多個欄位分組
function dataGroupingToArray(array, keyArry, resKey = 'data') {
    if (keyArry.length <= 0) return array
    var aMap = []
    var aResult = []
    for (var i = 0; i < array.length; i++) {
      
var item = array[i] var repetitionValue = '' var SJCS = '' var LJZH = '' keyArry.forEach((keyValue) => { if(keyValue == 'SJCS'){ SJCS = item[keyValue]; } if(keyValue == 'LJZH'){ LJZH = item[keyValue]; } repetitionValue
+= '' + item[keyValue]; }) if (aMap.indexOf(repetitionValue) === -1) { //沒有重複 var oItem = {} oItem[resKey] = [item] oItem['SJCS'] = SJCS; oItem['LJZH'] = LJZH; aResult.push(oItem) aMap.push(repetitionValue) } else { //重複了 var
index = aMap.indexOf(repetitionValue) aResult[index][resKey].push(item) } } return aResult } // 使用方法 var newlist = dataGroupingToArray(array, ['LJZH', 'SJCS'])