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) ;