合并数组对象,推荐使用object.assign(目标对象,原对象)
object.assign
//旧数据
let arr = [
{
name:'tom',
age:12,
sex:'女',
list:[
{
title:'西瓜',
color:'green'
},
{
title:'苹果',
color:'red'
},
{
title:'香蕉',
color:'yellow'
},
]
}
]
//新数组
let arr = [
{
name:'tom',
age:12,
sex:'女',
title:'西瓜',
color:'green'
},
{
name:'tom',
age:12,
sex:'女',
title:'苹果',
color:'red'
},
{
name:'tom',
age:12,
sex:'女',
title:'香蕉',
color:'yellow'
}
]
// 方式1:
// const newArr = []
// arr.forEach(item => {
// const list = item.list || []
// list.forEach(innerItem => {
// newArr.push(Object.assign({},item, innerItem))
// })
// })
// console.log(newArr)
// 方式2
const newArr = arr.reduce((newArr, item) => {
const list = item.list || []
list.forEach(innerItem => newArr.push(Object.assign({},item, innerItem)))
return newArr
},[])
console.log(newArr)
方法三:
let list=[
{
title:'西瓜',
color:'green'
},
{
title:'苹果',
color:'red'
},
{
title:'香蕉',
color:'yellow'
}
]
let arr = [
{
name:'tom',
age:12,
sex:'女',
list:[
{
title:'西瓜',
color:'green'
},
{
title:'苹果',
color:'red'
},
{
title:'香蕉',
color:'yellow'
},
]
}
];
let data =[];
for(var i=0;i<list.length;i++){
data.push( {
name:'tom',
age:12,
sex:'女',
title:list[i].title,
color:list[i].color,
list:[
{
title:'西瓜',
color:'green'
},
{
title:'苹果',
color:'red'
},
{
title:'香蕉',
color:'yellow'
},
]
})
}
console.log(data);