覆蓋數組對象
業務場景:對象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 },
*/