直接看代码
const data = [
{name: '张三', age: 10},
{name: '李四', age: 11},
{name: '王五', age: 19},
]
const tempArr = [
{name: '张三', hobby: '篮球'},
{name: '李四', sex: '女'},
{name: '赵六', age: 22}
]
// 例如这两个数组对象合并后的救过就是
[
{ name: '张三', age: 10, hobby: '篮球' },
{ name: '李四', age: 11, sex: '女' },
{ name: '王五', age: 19 },
{ name: '赵六', age: 22 }
]
方法如下
// 根据数组对象中的某个字段进行合并
const newArr = tempArr.reduce((arr1, arr2)=>{
// arr1第一次进来是等于初始化化值:A
// arr2依次是B中的对象,挨个判断
let isFlag = false
arr1.forEach((item) => {
if(item.name === arr2.name){
isFlag = true
// 如果找到则替换
item = Object.assign(item, arr2)
}
})
if(!isFlag){
// 如果找不到则新增
arr1.push(arr2)
}
// 返回结果值arr1,作为reduce下一次的数据
return arr1
}, data)
console.log(newArr)
// [
// { name: '张三', age: 10, hobby: '篮球' },
// { name: '李四', age: 11, sex: '女' },
// { name: '王五', age: 19 },
// { name: '赵六', age: 22 }
// ]
这样就完成里两个数组对象的合并啦