JS之数组对象的覆盖
覆盖数组对象
业务场景:对象A与对象B具有相同属性的情况下,把对象B的属性值赋值到对象A中,且不影响对象A的其他属性。(数组对象中如果嵌套了其他数组对象,则该方法不适用)
var o1 = [
{ name: '小明', age: 18, sex: '男' },
{ name: '小红', age: 18, sex: '女' },
{ name: '小刚', age: 18 },
]
var o2 = [
{ name: '小红', age: 20 },
{ name: '小刚', age: 16 },
]
function objAssign(objA, objB, value) {
return objA.map((itemA) => {
return Object.assign(itemA, objB.find((itemB) => {
return itemB && itemA[value] === itemB[value] // 指定属性名name
}))
})
}
console.log(JSON.stringify(objAssign(o1, o2, 'name'))) // 指定属性名name
/* 输出结果
{ name: '小明', age: 18, sex: '男' },
{ name: '小红', age: 20, sex: '女' },
{ name: '小刚', age: 16 },
*/
注:本文可分享可转发,转发请注明出自bug源