首页 > 解决方案 > 基于数组对象javascript中的属性添加键值

问题描述

我想知道如何根据javascript中的属性映射键值对。如果名称匹配,我需要将 title 属性添加到 obj1。

var obj1 = [
  {"item": 1, code: "SG", name: "Engg", status: "A"},
  {"item": 2, code: "TH", name: "Civil", status: "C"},
  {"item": 1, code: "ML", name: "IT", status: "I"}
] 

var obj2 = [
   {"name": "Engg", "title": "Service"},
   {"name": "Civil", "title": "MRT"}
 ]

预期产出

var newobj= [
  {"item": 1, code: "SG", name: "Engg", status: "A", title: "Service"},
  {"item": 2, code: "TH", name: "Civil", status: "C",title:"MRT"},
  {"item": 1, code: "ML", name: "IT", status: "I"}

]

标签: javascriptarraysobject

解决方案


var obj1 = [{
    "item": 1,
    code: "SG",
    name: "Engg",
    status: "A"
  },
  {
    "item": 2,
    code: "TH",
    name: "Civil",
    status: "C"
  },
  {
    "item": 1,
    code: "ML",
    name: "IT",
    status: "I"
  }
]

var obj2 = [{
    "name": "Engg",
    "title": "Service"
  },
  {
    "name": "Civil",
    "title": "MRT"
  }
]

const a = obj1.map(el => ({
  ...el,
  ...obj2.find(item => item.name === el.name)
}))

console.log(a)


推荐阅读