在 JavaScript 中,可迭代对象是具有迭代行为的对象。可迭代对象实现了迭代器协议(Iterator Protocol),这意味着它们可以通过迭代器进行遍历。迭代器是一个对象,它具有一个 next()
方法,每次调用都返回一个包含 value
和 done
属性的对象。value
表示当前迭代的值,而 done
是一个布尔值,表示迭代是否完成。
以下是一些实现了迭代器协议的可迭代对象:
1. 字符串(String):
字符串是一个由字符组成的序列,因此可以被视为可迭代对象。
let str = "Hello";
// 使用 for...of 遍历字符串
for (let char of str) {
console.log(char);
}
// 输出:
// H
// e
// l
// l
// o
2. 数组(Array):
数组是 JavaScript 中最常用的数据结构之一,也是可迭代对象。
let numbers = [1, 2, 3, 4, 5];
// 使用 for...of 遍历数组
for (let num of numbers) {
console.log(num);
}
// 输出:
// 1
// 2
// 3
// 4
// 5
3. 映射(Map):
Map
是一种键值对的集合,也是可迭代对象。
let myMap = new Map();
myMap.set("a", 1);
myMap.set("b", 2);
myMap.set("c", 3);
// 使用 for...of 遍历映射
for (let [key, value] of myMap) {
console.log(`${key}: ${value}`);
}
// 输出:
// a: 1
// b: 2
// c: 3
4. 集合(Set):
Set
是一种不重复值的集合,同样也是可迭代对象。
let mySet = new Set([1, 2, 3, 4, 5]);
// 使用 for...of 遍历集合
for (let num of mySet) {
console.log(num);
}
// 输出:
// 1
// 2
// 3
// 4
// 5