js 遍历数组修改对象值
时间: 2023-07-05 10:36:25 浏览: 116
可以使用 `Array.prototype.map()` 方法遍历数组并修改对象的值,示例如下:
```javascript
const arr = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 30 }
];
const newArr = arr.map(obj => {
if (obj.name === 'Bob') {
return { ...obj, age: 26 }; // 修改 Bob 的年龄为 26
} else {
return obj;
}
});
console.log(newArr); // [{ name: 'Alice', age: 20 }, { name: 'Bob', age: 26 }, { name: 'Charlie', age: 30 }]
```
在上述例子中,我们使用 `Array.prototype.map()` 方法遍历数组 `arr`,对于每个对象,如果名字是 Bob,就使用对象解构语法和属性 spread 语法创建一个新的对象,并将年龄修改为 26,否则返回原对象。最终得到新的数组 `newArr`,其中 Bob 的年龄已经被修改为 26。
相关问题
js遍历数组对象,存在则修改,不存在添加新对象
可以使用 for 循环或者 forEach 方法遍历数组对象,然后对每个元素进行判断。如果存在指定的对象,则修改该对象,否则添加一个新对象到数组中。
以下是一个示例代码,用于实现这个功能:
```javascript
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
];
const newObject = { id: 2, name: 'Charlie' };
let found = false;
for (let i = 0; i < arr.length; i++) {
if (arr[i].id === newObject.id) {
arr[i] = newObject;
found = true;
break;
}
}
if (!found) {
arr.push(newObject);
}
```
这段代码先定义了一个数组 `arr`,其中包含两个对象。然后定义了一个新对象 `newObject`,用于测试添加或修改操作。接下来使用 for 循环遍历数组,如果找到了与 `newObject` 具有相同 `id` 的对象,则将其替换为 `newObject`,并将 `found` 变量设置为 `true`,表示已经找到了。否则,将 `newObject` 添加到数组末尾。最后的结果是 `arr` 数组中包含两个对象,其中 `id` 为 2 的对象的 `name` 属性被修改为了 'Charlie'。
js 遍历数组修改对象名
可以使用 `Array.prototype.map()` 方法遍历数组并修改对象的属性名,示例如下:
```javascript
const arr = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 25 },
{ name: 'Charlie', age: 30 }
];
const newArr = arr.map(obj => {
if (obj.name === 'Bob') {
return { newName: obj.name, age: obj.age }; // 将 Bob 的属性名修改为 newName
} else {
return obj;
}
});
console.log(newArr); // [{ name: 'Alice', age: 20 }, { newName: 'Bob', age: 25 }, { name: 'Charlie', age: 30 }]
```
在上述例子中,我们使用 `Array.prototype.map()` 方法遍历数组 `arr`,对于每个对象,如果名字是 Bob,就创建一个新的对象,并将 `name` 属性改为 `newName`,同时保留原来的 `age` 属性。否则返回原对象。最终得到新的数组 `newArr`,其中 Bob 的属性名已经被修改为 `newName`。
阅读全文