方法一:
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;
}
调用: