let param = "name"; let array = [ {id:"1",name:"test001",score:"99"}, {id:"1",name:"test001",score:"99.1"}, {id:"1",name:"test001",score:"99.2"}, {id:"2",name:"test002",score:"98"}, {id:"2",name:"test002",score:"98.1"}, {id:"3",name:"test003",score:"97"}, {id:"3",name:"test003",score:"97.1"} ]; let result = rowToColumn(array,param);
/** * 後端返回一組數據,根據標識字段分類 * @param array 待轉換的集合 * @param paramName 轉換標誌 * @returns 返回以paramName爲key的json數組 */ function rowToColumn (array,paramName){ let nameArray = []; let newJSON = {}; for(let i=0;i<array.length;i++){ let item = array[i]; let itemArray = []; if(nameArray.indexOf(item[paramName])==-1){ nameArray.push(item[paramName]); itemArray.push(item); newJSON[item[paramName]] = itemArray; }else{ let last = newJSON[item[paramName]]; last.push(item); newJSON[item[paramName]] = last; } } return newJSON; }