多個欄位分組
阿新 • • 發佈:2021-10-25
/** * * @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 { //重複了 varindex = aMap.indexOf(repetitionValue) aResult[index][resKey].push(item) } } return aResult } // 使用方法 var newlist = dataGroupingToArray(array, ['LJZH', 'SJCS'])