//把對象數據按照某一個屬性進行分類
function sort_pro(data, keys = []) { //keys可以傳一個數組 var c = []; var d = {}; for (var element of data) { let element_keyStr = ""; let element_key = []; let element_keyObj = {}; for (var key of keys) { element_key.push(element[key]); element_keyObj[key] = element[key]; } element_keyStr = element_key.join("_"); if (!d[element_keyStr]) { c.push({ ...element_keyObj, children: [element] }); d[element_keyStr] = element; } else { for (var ele of c) { let isTrue = keys.some(key => { return ele[key] != element[key]; }); if (!isTrue) { ele.children.push(element); } } } } return c; }
var data = [
{name:'張三',score:56},
{name:'張三',score:70},
{name:'李四',score:100}
]
sort_pro(data ,['name'])
結果: