📌  相关文章
📜  如何根据值更新任何数组键的对象值 - Javascript(1)

📅  最后修改于: 2023-12-03 15:24:49.618000             🧑  作者: Mango

如何根据值更新任何数组键的对象值 - JavaScript

在 JavaScript 中,可以使用以下方式基于值更新对象数组的键值。

使用 for 循环更新数组键的值

以下是使用 for 循环更新对象数组键的值的示例:

const array = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];

const updateValue = (array, key, oldValue, newValue) => {
  for (let i = 0; i < array.length; i++) {
    if (array[i][key] === oldValue) {
      array[i][key] = newValue;
    }
  }
};

// 更新键为 'id' 且值为 2 的对象的 name 属性值
updateValue(array, 'id', 2, 'Janet');

console.log(array);
// 输出:
// [
//   { id: 1, name: 'John' },
//   { id: 2, name: 'Janet' },
//   { id: 3, name: 'Bob' }
// ]
使用 Array.map 更新数组键的值

以下是使用 Array.map 更新对象数组键的值的示例:

const array = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];

const updateValue = (array, key, oldValue, newValue) => {
  return array.map(obj => {
    if (obj[key] === oldValue) {
      return { ...obj, [key]: newValue };
    }
    return obj;
  });
};

// 更新键为 'id' 且值为 2 的对象的 name 属性值
array = updateValue(array, 'id', 2, 'Janet');

console.log(array);
// 输出:
// [
//   { id: 1, name: 'John' },
//   { id: 2, name: 'Janet' },
//   { id: 3, name: 'Bob' }
// ]
使用 Array.filter 和 Array.map 更新数组键的值

以下是使用 Array.filter 和 Array.map 更新对象数组键的值的示例:

const array = [
  { id: 1, name: 'John' },
  { id: 2, name: 'Jane' },
  { id: 3, name: 'Bob' }
];

const updateValue = (array, key, oldValue, newValue) => {
  return array
    .filter(obj => obj[key] === oldValue)
    .map(obj => ({ ...obj, [key]: newValue }));
};

// 更新键为 'id' 且值为 2 的对象的 name 属性值
array = updateValue(array, 'id', 2, 'Janet');

console.log(array);
// 输出:
// [
//   { id: 1, name: 'John' },
//   { id: 2, name: 'Janet' },
//   { id: 3, name: 'Bob' }
// ]

以上是根据值更新任何数组键的对象值的三种不同方法。通过这些方法,你可以轻松更新对象数组的键值。