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 },
*/


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM