for of遍历数组时能否对数组内的对象进行解构
时间: 2024-02-06 08:10:11 浏览: 72
可以对数组内的对象进行解构,如下所示:
```javascript
const arr = [
{ name: 'Alice', age: 18 },
{ name: 'Bob', age: 20 }
];
for (let { name, age } of arr) {
console.log(name, age);
}
```
输出:
```
Alice 18
Bob 20
```
相关问题
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 { ...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。
for of遍历对象
for of遍历对象需要将对象转化为迭代器对象。普通对象不是可迭代对象,所以无通过for of遍历。可以通过判断对象是否为迭代器对象来确定是否可以使用for of进行遍历。可以使用isIterator()方法进行判断。
要让对象能够被for in遍历,需要实现Symbol.iterator接口,并使用ES6的Generator生成器为对象添加一个迭代器。通过在Object.prototype上定义Symbol.iterator属性,利用Generator函数生成一个迭代器对象。该迭代器对象可以将对象的键值对转化为可迭代的形式,从而能够使用for of进行遍历。
另外,可以使用Object.entries()方法来获取对象的可枚举属性的键值对数组。通过对该数组进行解构赋值,就可以方便地使用for of进行遍历,并输出键和值。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [for...in for...of遍历对象的四种方式](https://blog.csdn.net/weixin_52170399/article/details/123268598)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文