写一个使用迭代器遍历数组的例子和遍历对象的例子,要求分别使用for...in和for...of进行遍历。
时间: 2024-10-09 12:04:47 浏览: 40
当然,首先我们来看一下如何使用`for...in`遍历数组和对象。
**数组遍历(使用 `for...in`)**:
```javascript
let array = [1, 2, 3, 4, 5];
// for...in 遍历数组索引
for (let index in array) {
if (Array.prototype.hasOwnProperty.call(array, index)) { // 检查是否是自有属性
console.log(`Element at index ${index}: ${array[index]}`);
}
}
```
**对象遍历(使用 `for...in`)**:
```javascript
let obj = {name: 'John', age: 30, city: 'New York'};
// for...in 遍历对象键
for (let key in obj) {
console.log(`${key}: ${obj[key]}`);
}
```
**使用 `for...of` 迭代器遍历数组**:
```javascript
let array = [1, 2, 3, 4, 5];
// 使用 Array.from 或者扩展运算符将数组转换为可迭代对象
for (let element of Array.from(array)) {
console.log(element);
}
// 或者直接遍历数组
for (let element of array) {
console.log(element);
}
```
**对象遍历(使用 `for...of` 和 Symbol.iterator)**:
注意,JavaScript 中的普通对象并不支持 `Symbol.iterator`,但如果我们有一个实现了该方法的对象,例如 Map、Set 或 ES6 的类,我们可以这样做:
```javascript
let obj = new Map([['name', 'John'], ['age', 30], ['city', 'New York']]);
for (let [key, value] of obj) {
console.log(`${key}: ${value}`);
}
```
--
阅读全文