javascript - 按键组合两个对象数组,并将第二个数组的值插入第一个数组内的新数组

标签 javascript arrays

我需要一个包含两个数组数据的结果数组。如果名称相同,则将第二个数组的值添加到第一个数组的数组中。执行此操作的最佳方法是什么?

var array1 = [
  {name: "name1", type: "type"},
  {name: "name2", type: "type"},
  {name: "name3", type: "type"}
]

var array2 = [
  {name: "name1", value: "value1"},
  {name: "name2", value: "value2"},
  {name: "name2", value: "value3"},
  {name: "name2", value: "value4"}
]

var result = [
  {name: "name1", type: "type", values: [
    "value1"
  ]},
  {name: "name2", type: "type", values: [
    "value2",
    "value3",
    "value4"
  ]},
  {name: "name3", type: "type", values:[]}
]

最佳答案

这是我的方法(注意它修改了array1):

var array1 = [
  {name: "name1", type: "type"},
  {name: "name2", type: "type"},
  {name: "name3", type: "type"}
]

var array2 = [
  {name: "name1", value: "value1"},
  {name: "name2", value: "value2"},
  {name: "name2", value: "value3"},
  {name: "name2", value: "value4"}
]

var result = array1.map(item => {
  item.values = array2
    .filter(x => x.name === item.name)
    .map(x => x.value)
    
  return item
})

console.log(result)

关于javascript - 按键组合两个对象数组,并将第二个数组的值插入第一个数组内的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47066015/

相关文章:

javascript - 理解 Eloquent Javascript 的 Reduce 函数

javascript - 用javascript定位是一个好习惯

PHP按键值降序对数组进行数字排序

C 二维数组段错误

Python - 连接或堆叠两个以上不同形状的数组

ios - 键入任何对象?不符合 'StringLiteralConvertible'

java - 为什么我的数组不能平均所有数字?

javascript - 如何将下拉列表中的箭头向左移动

javascript - 具有特定类的最接近的 div

javascript - 找不到模块 "serve-static"| JavaScript | Node js