1. 程式人生 > 其它 >js根據某個欄位進行分組

js根據某個欄位進行分組

分組前資料: [ {"f1":"q","f2":"w","f3":"e","f4":"r"}, {"f1":"q","f2":"w","f3":"e","f4":"r"}, {"f1":"w","f2":"w","f3":"e","f4":"r"}, {"f1":"w","f2":"w","f3":"e","f4":"r"}, ] 分組後資料: [ {"id":"q","data":"[{"f1":"q","f2":"w","f3":"e","f4":"r"},{"f1":"q","f2":"w","f3":"e","f4":"r"},]"}, {"id":"w","data":"[{"f1":"w","f2":"w","f3":"e","f4":"r"},{"f1":"w","f2":"w","f3":"e","f4":"r"},]"}, ] //根據欄位分組 function getGroup(arr) { var map = {}, dest = []; //處理後的資料 for (var i = 0; i < arr.length; i++) { var ai = arr[i]; if (!map[ai.WSD_YEAR_MONTH]) { dest.push({ id: ai.WSD_YEAR_MONTH, data: [ai] }); map[ai.WSD_YEAR_MONTH] = ai; } else { for (var j = 0; j < dest.length; j++) { var dj = dest[j]; if (dj.id == ai.WSD_YEAR_MONTH) { dj.data.push(ai); break; } } } } return dest; }