繁体   English   中英

如何将两个arrays合并为一个? (反应JS)

[英]How to combine two arrays into a single? (React JS)

有两个 arrays 如下所示。

const arrayA = {
 0: {
  id: XXXXXXX,
  name: "test"
 },
 1: {
  id: YYYYYYY,
  name: "example"
 }
}


const arrayB = {
  0: {
    id: XXXXXXX,
    category: "sea",
  }
  1: {
    id: YYYYYYY,
    category: "mountain"
  }
}

我想通过每个 id 将这两个 arrays 组合成一个,如下所示:

array C = {
 0: {
  id: XXXXXXX,
  name: "test",
  category: "sea",
 },
 1: {
  id: YYYYYYY,
  name: "example",
  category: "mountain"
 }  
}

最聪明的方法是什么?

实际上,不存在 arrays,而是具有索引等键的对象。 您可以使用Object.keys进行迭代,并通过对象通过键合并它们。

 const arrayA = { "0": { id: 0, name: "test" }, "1": { id: 1, name: "example" } } const arrayB = { "0": { id: 0, category: "sea", }, "1": { id: 1, category: "mountain" } } const arrayC = {} for(const key of Object.keys(arrayA)) { arrayC[key] = {...arrayA[key], ...arrayB[key], } } console.log(arrayC)

您还可以使用reduce而不是通常的迭代

 const arrayA = { "0": { id: 0, name: "test" }, "1": { id: 1, name: "example" } } const arrayB = { "0": { id: 0, category: "sea", }, "1": { id: 1, category: "mountain" } } const arrayC = Object.keys(arrayA).reduce((result, key) => ({...result, [key]: {...arrayA[key], ...arrayB[key] } }), {}) console.log(arrayC)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM