迭代对象语法使用

1/15/2023

# for...of语句的使用

for...of语句是用于迭代可迭代对象中的元素的语句。它可以遍历任何具有Symbol.iterator方法的对象,包括数组、字符串、Set和Map等集合。

# for...of语句的语法

for (variable of iterable) {
  statement
}
1
2
3

for...of语句的语法如上所示,其中iterable表示可迭代对象,variable表示迭代器当前所指向的元素。

# for...of语句的示例

const arr = [1, 2, 3, 4, 5];

for (let item of arr) {
  console.log(item);
}
1
2
3
4
5

上面代码中,arr是一个数组,它是一个可迭代对象。for...of语句遍历arr中的每个元素,并将当前元素赋值给item变量。因此,item变量的值分别为12345

# for...of语句与for循环的区别

for...of语句与for循环的区别在于for...of语句可以遍历任何具有Symbol.iterator方法的对象,而for循环只能遍历数组。

const arr = [1, 2, 3, 4, 5];

for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}
1
2
3
4
5

上面代码中,arr是一个数组,它是一个可迭代对象。for循环遍历arr中的每个元素,并将当前元素赋值给i变量。因此,i变量的值分别为12345


const str = 'hello';

for (let i = 0; i < str.length; i++) {
  console.log(str[i]);
}
1
2
3
4
5
6

上面代码中,str是一个字符串,它是一个可迭代对象。for循环遍历str中的每个元素,并将当前元素赋值给i变量。因此,i变量的值分别为hello


const set = new Set([1, 2, 3, 4, 5]);

for (let i = 0; i < set.size; i++) {
  console.log(set[i]);
}
1
2
3
4
5
6

上面代码中,set是一个Set集合,它是一个可迭代对象。for循环遍历set中的每个元素,并将当前元素赋值给i变量。因此,i变量的值分别为12345


const map = new Map([['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5]]);

for (let i = 0; i < map.size; i++) {
  console.log(map[i]);
}
1
2
3
4
5
6

上面代码中,map是一个Map集合,它是一个可迭代对象。for循环遍历map中的每个元素,并将当前元素赋值给i变量。因此,i变量的值分别为[a, 1][b, 2][c, 3][d, 4][e, 5]


const obj = { a: 1, b: 2, c: 3, d: 4, e: 5 };

for (let i = 0; i < obj.size; i++) {
  console.log(obj[i]);
}
1
2
3
4
5
6

上面代码中,obj是一个对象,它是一个可迭代对象。for循环遍历obj中的每个元素,并将当前元素赋值给i变量。因此,i变量的值分别为undefinedundefinedundefinedundefinedundefined

# for...of语句与for...in语句的区别

for...of语句与for...in语句的区别在于for...of语句可以遍历任何具有Symbol.iterator方法的对象,而for...in语句只能遍历对象的可枚举属性。

const arr = [1, 2, 3, 4, 5];

for (let item in arr) {
  console.log(item);
}
1
2
3
4
5

上面代码中,arr是一个数组,它是一个可迭代对象。for...in语句遍历arr中的每个元素,并将当前元素的索引赋值给item变量。因此,item变量的值分别为01234


const str = 'hello';

for (let item in str) {
  console.log(item);
}
1
2
3
4
5
6

上面代码中,str是一个字符串,它是一个可迭代对象。for...in语句遍历str中的每个元素,并将当前元素的索引赋值给item变量。因此,item变量的值分别为01234


const set = new Set([1, 2, 3, 4, 5]);

for (let item in set) {
  console.log(item);
}
1
2
3
4
5
6

上面代码中,set是一个Set集合,它是一个可迭代对象。for...in语句遍历set中的每个元素,并将当前元素的索引赋值给item变量。因此,item变量的值分别为01234


const map = new Map([['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5]]);
for (let item in map) {
  console.log(item);
}
1
2
3
4
5

上面代码中,map是一个Map集合,它是一个可迭代对象。for...in语句遍历map中的每个元素,并将当前元素的索引赋值给item变量。因此,item变量的值分别为01234


const obj = { a: 1, b: 2, c: 3, d: 4, e: 5 };

for (let item in obj) {
  console.log(item);
}
1
2
3
4
5
6

上面代码中,obj是一个对象,它是一个可迭代对象。for...in语句遍历obj中的每个元素,并将当前元素的索引赋值给item变量。因此,item变量的值分别为abcde

编辑时间: 1/24/2023, 9:14:20 AM