【问题标题】:Replace elements of array [duplicate]替换数组的元素[重复]
【发布时间】:2021-12-22 03:37:48
【问题描述】:

我有两个数组如下:

array1 = [
 {
  "id":"1",
   "name":"George",
   "City":"california"
 },
 {
  "id":"2",
   "name":"James",
   "City":"Paris"
 },
  {
  "id":"3",
  "name":"Julie",
  "City":"rome"
 }
]

array2 = [
 {
  "id":"2",
   "name":"jonty",
   "City":"wales"
 },
 {
  "id":"5",
   "name":"kite",
   "City":"mumbai"
 },
  {
  "id":"3",
  "name":"neha",
  "City":"pune"
 }
]

我想检查array2 中是否有任何具有特定id 的元素存在于array1 中。如果存在具有该 id 的元素,则替换 array1 中的该元素,否则将该元素推入 array1。最终数组如下所示:

finalArray = [
{
  "id":"1",
   "name":"George",
   "City":"california"
 },
 {
  "id":"2",
   "name":"jonty",
   "City":"wales"
 },
  {
  "id":"3",
  "name":"neha",
  "City":"pune"
 },
 {
  "id":"5",
   "name":"kite",
   "City":"mumbai"
 }
]

我该怎么做?

【问题讨论】:

标签: javascript


【解决方案1】:

这会创建数组 1 的副本。然后它遍历数组 2 中的每个项目,如果它具有唯一的 id,则将其插入到输出数组中。如果它具有相同的 id,则它将项从 array1 替换为 array2。

const outArray = [...array1];

for (const item of array2)
{
    const { id } = item;
  
    const existingIndex = outArray.findIndex(element => element.id === id);

    if(existingIndex != -1) {
        outArray[existingIndex] = item;
    }
    else {
        outArray.push(item);
    }
}

// outArray is the output

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 2018-11-06
    相关资源
    最近更新 更多