首页 > 解决方案 > 如何在javascript中比较和更改对象值的数组

问题描述

我有两个对象数组,想比较它们的名称和值。

const array1 = [
  {
    name: 'John',
    value: null
  },
  {
    name: 'Peter',
    value: null
  }
]

const array2 = [
  {
    name: 'John',
    value: '0'
  }
]

如果array1 上存在属性namearray2,则将name 的值更改为'0',否则什么也不做。

我期望的结果是:

[
  {
    "name": "John",
    "value": "0"
  },
  {
    "name": "Peter",
    "value": null
]

谁能告诉我该怎么做?

标签: javascriptarrays

解决方案


这很简单 :

array1.forEach(record1 => {
  array2.forEach(record2 => {
    if (record1.name === record2.name) {
      record1.value = "0";
    }
  });
});

推荐阅读