首页 > 解决方案 > 如何比较对象数组中的键并使用javascript对其进行修改

问题描述

我有两个对象 obj1 和 obj2,如何循环遍历数组键children,如果代码名称匹配,则在对象 obj2 中添加名称键,获取对象。

如何遍历对象对象并匹配键并按下键以在javascript中获取新对象

function newObject(obj1, obj2) {
  var result = obj1.map(e => {
    if ('children' in e)
      e.children = e.children.map(child => {
        if ('children' in child)
          child.children = child.children.map(c => {
            name: c.name
          });
        return child;
      });
    return e;
  })
  return result
}

var obj1 = [{
  "id": 1,
  "item": "node1",
  "children": [{
      "id": 2,
      "code": "countries",
      "title": "Country",
      "children": [{
          "cid": 12,
          "code": "S1",
          "name": "SG",
          "children": [{
            "id": 4,
            "code": "C1",
            "name": "City"
          }]
        },
        {
          "cid": 13,
          "code": "S2",
          "name": "TH"
        }
      ]
    },
    {
      "id": 2,
      "code": "Groceries",
      "title": "Grocery",
      "children": [{
          "cid": 11,
          "code": "G1",
          "name": "Fruits"
        },
        {
          "cid": 10,
          "code": "G2",
          "name": "Vegetables"
        }
      ]
    }, {
      "id": 3,
      "code": "lists",
      "title": "Option"
    }
  ]
}];

var obj2 = [{
    id: 1,
    code: "G1",
    status: "active"
  },
  {
    id: 2,
    code: "S2",
    status: "inactive"
  },
  {
    id: 3,
    code: "C1",
    status: "active"
  }
];

console.log(this.newObject(obj1, obj2));

预期产出

[
  {id:1, name: "Fruits",code:"G1", status:"active"},
  {id:2, name: "TH",code:"S2", status:"inactive"},
  {id:3, name: "city",code:"C1", status:"active"}
]

标签: javascriptjqueryarraysobject

解决方案


您可以检查此代码 我修复了您的对象,您可以在控制台中找到您的期望


推荐阅读