js处理复杂数据格式数组嵌套对象,对象嵌套数组,reduce处理数据格式

let list=[
    {id:1,name:'a'},
    {id:1,name:'b'},
    {id:1,name:'c'},
    {id:2,name:'A'},
    {id:2,name:'B'},
    {id:2,name:'C'},

]
//对象嵌套数组--{id:[name]}
let objList=list.reduce((obj,item)=>{
    obj[item.id]?obj[item.id].push(item.name):obj[item.id]=[item.name]
    return obj
},{})
console.log(objList)
/*
{
    "1":["a","b","c"],
    "2":["A","B","C"]
}
*/

//数组嵌套对象--[{id:id,name:[name]}]
let arrList=list.reduce((arr,item)=>{
    let itemFind =arr.find(a=>(a.id==item.id))
    itemFind?itemFind.name.push(item.name): arr.push({id:item.id,name:[item.name]})
    return arr
},[])
console.log(arrList)
/*
[
    {"id":1,"name":["a","b","c"]},
    {"id":2,"name":["A","B","C"]}
]
*/ 

 

posted @ 2020-12-06 15:05  恨钱不成山  阅读(1336)  评论(0)    收藏  举报