1Q:题目
let arr = [{
name: 'a',
values: [1, 2]
}, {
name: 'b',
values: [3]
}, {
name: 'a',
values: [4, 5]
}]
const arr111 = [
{name: 'a', values: [1, 2, 4, 5]},
{name: 'b', values: [3]}
]
1A:解答
function merge(arr) {
let newMap = new Map();
arr.forEach(item => {
if (newMap[item.name]) {
newMap[item.name].push(...item.values)
} else {
newMap[item.name] = item.values
}
});
let newArr = [];
for (let key in newMap) {
let obj = {
name: key,
values: newMap[key]
};
newArr.push(obj);
}
return newArr
}
console.log(merge(arr));
2Q:删除tree无用数据
let tree = [{
id: 1,
name: '小明',
children: [{
id: 11,
name: '李好',
children: [{
id: 111,
name: ''
}],
}, {
id: 12,
name: '',
}, {
id: 13,
name: '张就',
children: [{
id: 131,
name: '王小王'
}],
}],
}, {
id: 2,
name: '小红',
children: [],
}];
2A:解答
function filterTree(tree) {
tree.forEach((item, index) => {
if (item.name === '' && !item.children) {
delete tree[index]
}
if (item.children) {
return filterTree(item.children)
}
})
}
filterTree(tree);
console.log(tree);