📅  最后修改于: 2023-12-03 15:24:49.618000             🧑  作者: Mango
在 JavaScript 中,可以使用以下方式基于值更新对象数组的键值。
以下是使用 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 更新对象数组键的值的示例:
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 更新对象数组键的值的示例:
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' }
// ]
以上是根据值更新任何数组键的对象值的三种不同方法。通过这些方法,你可以轻松更新对象数组的键值。