javascript - 将数据从一个数组复制到另一个数组

标签 javascript arrays json reactjs

数组一:

 array1 = [{
        "id": 1,
        "name": "aaaaa",
        "attr": [{"attr_code": "a_id", "value": "5"}]
      },
      {
        "id": 2,
        "name": "bbbbb",
        "attr": [{"attr": "a_id", "value": "4"}]
      }]

数组二:

array2 = [{
    "id": 4,
    "name": "bef",
  },
  {
    "id": 5,
    "name": "bcd",
  }]

结果数组:

 resultingArray =  [{
    "id": 1,
    "name": "aaaaa",
    "attr": [{"attr_code": "a_id", "value": "5"}],
    "a_id" :   {"id": 5, "name": "bcd"}
  },
    {
      "id": 2,
      "name": "bbbbb",
      "attr": [{"attr": "a_id", "value": "4"}],
      "a_id" : {"id": 4, "name": "bef"}
    }]

我希望根据 array2 的 id 将 array2 对象添加到 array1 中。我尝试在两个数组上使用映射函数来比较和添加对象,但没有成功。你能告诉我该怎么做吗?

谢谢

最佳答案

根据array2的id将array2对象添加到array1中。

let array1 = 
[
  {
    "id": 1,
    "name": "aaaaa",
    "attr": [{"attr_code": "a_id", "value": "5"}]
  },
  {
    "id": 2,
    "name": "bbbbb",
    "attr": [{"attr": "a_id", "value": "4"}]
  }
];
      
let array2 = [{
    "id": 4,
    "name": "bef",
  },
  {
    "id": 5,
    "name": "bcd",
  }
];
 
let resultingArray=[]; 

array1.forEach(function(element) {
  element['a_id'] = [];
  element['attr'].forEach(function(attr) {
        element['a_id'].push(array2.find(function(item) {
        return item.id == attr.value;
      }));
   });
  resultingArray.push(element)
});

console.log(resultingArray);

关于javascript - 将数据从一个数组复制到另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52619549/

相关文章:

json - 如何使用 Jackson 创建一个无名的 Json 数组

javascript - 在 android 中引用 javax.script.ScriptEngine 或评估 javascript 表达式

java - 如何对包含年份的月份列表进行排序

javascript - 什么是 ReferenceError 及其计算时间

java - 一种查找模式编号的方法

JavaScript 将数据动态填充到 HTML 表格中

java - 如何在 Apache CXF jax-rs (REST) 中提交 JSON 数据作为请求主体

javascript - 二维数组与 javascript (p5js)

javascript - 使用 ShareThis 的社交书签 : javascript error 'SHARETHIS is undefined'

javascript - 如何获取对象内部对象的键?