ES6为JavaScript带来了许多新特性,其中一个特性是 for..of 循环,它能够简化数组和对象的迭代。在本文中,我们将学习如何使用for..of循环遍历数组和对象,并提供一些示例代码。
遍历数组
for..of 循环与之前的for循环不同,for循环需要设置索引值进行计数,而for..of循环直接迭代数组元素或其他可迭代对象的值。下面是一个对比:
-- -------------------- ---- ------- -- ------- ----- ----- - --- -- --- --- ---- - - -- - - ------------- ---- - ---------------------- - -- ------- ---- ----- ----- - --- -- --- --- ------ ----- -- ------ - ------------------- -
输出结果相同:
1 2 3
通过上面的代码可以看出,for..of 循环不需要声明计数器变量,工作原理是先创建一个迭代器对象,然后每次循环执行.next()方法获取下一个元素,即实现了遍历的功能。
需要注意的是仅限于数组、Set、Map等JavaScript内置的具有迭代功能的数据结构才能使用for..of进行遍历,如果要遍历普通对象的键值对,可以使用for..in语句。
遍历对象
使用for..of循环迭代对象需要注意的是,使用for..of遍历时需要将对象转化为可迭代对象,例如可以使用Object.keys()或Object.values()方法将普通对象转化为可迭代对象:
const obj = { a: 1, b: 2, c: 3 }; console.log(Object.keys(obj)); // ["a", "b", "c"] console.log(Object.values(obj)); // [1, 2, 3]
在将对象转化为可迭代对象后,我们可以使用for..of循环来遍历它们。下面是一个示例代码:
const obj = { a: 1, b: 2, c: 3 }; for (const value of Object.values(obj)) { console.log(value); }
输出结果:
1 2 3
结论
使用for..of循环可以更方便地迭代数组和可迭代对象的值,从而简化了代码的书写。需要注意的是,仅限于JavaScript内置的具有迭代功能的数据结构才能使用for..of进行遍历,如果要遍历普通对象的键值对,可以使用for..in语句。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67242b1d2e7021665e12821d