准备条件:有list数组,每一项中有不同长度的children数组
list = [
{id: "1005000", name: "居家",children:[{}]}
{id: "1005002", name: "美食",…}
{id: "1010000", name: "服饰",…}
{id: "1011000", name: "母婴",…}
{id: "1013001", name: "个护",…}
{id: "1019000", name: "严选",…}
{id: "1043000", name: "数码",…}
{id: "109243029", name: "运动",…}
{id: "19999999", name: "杂项",…}
]
实现效果:获取list中过滤出children的前两位,不直接修改list数据
1.Object.assign()
list.map(item =>{
const obj = Object.assign(item)
obj.children = item.children && item.children.filter((item,i) => i< 2)
})
2.使用for循环
list.map(item =>{
const obj = {}
for(let key in item ){
obj[key] = item[key]
}
obj.children = item.children && item.children.filter((item,i) => i< 2)
})
3.使用...扩展运算符讲item中的属性结构出来,然后用children将原来有的children数组进行覆盖
list.map(item =>{
...item,
children:item.children &&item.children.filter((item,i) => i<2 )
})