JavaScript for... of 循环

x33g5p2x  于2022-05-11 转载在 Java  
字(2.1k)|赞(0)|评价(0)|浏览(344)

在本教程中,您将借助示例了解 JavaScript for…of 循环。
    在 JavaScript 中,我们可以通过三种方式使用for循环。

  • JavaScript for 循环
  • JavaScript for…in 循环
  • JavaScript for…of 循环

for…of 循环是在 JavaScript ES6 的更高版本中引入的。
    JavaScript 中的 for…of 循环允许您遍历可迭代对象(数组、集合、映射、字符串等)。

JavaScript for…of 循环

for…of 循环的语法是:

  1. for (element of iterable) {
  2. // body of for...of
  3. }

这里,

  • iterable - 一个可迭代对象(数组、集合、字符串等)。
  • element - 可迭代的项

用简单的英语,您可以将上面的代码理解为:对于 iterable 中的每个 element,运行循环体。

for…of 与数组

for…of 循环可用于遍历数组。例如,

  1. // array
  2. const students = ['John', 'Sara', 'Jack'];
  3. // using for...of
  4. for ( let element of students ) {
  5. // display the values
  6. console.log(element);
  7. }

输出

  1. John
  2. Sara
  3. Jack

在上面的程序中,for…of 循环用于遍历 students 数组对象并显示其所有值。

for…of 与字符串

您可以使用 for…of 循环来遍历字符串值。例如,

  1. // string
  2. const string = 'code';
  3. // using for...of loop
  4. for (let i of string) {
  5. console.log(i);
  6. }

输出

  1. c
  2. o
  3. d
  4. e
for…of 与 Set

您可以使用 for…of 循环遍历 Set 元素。例如,

  1. // define Set
  2. const set = new Set([1, 2, 3]);
  3. // looping through Set
  4. for (let i of set) {
  5. console.log(i);
  6. }

输出

  1. 1
  2. 2
  3. 3
for…of 与 Map

您可以使用 for…of 循环遍历 Map 元素。例如,

  1. // define Map
  2. let map = new Map();
  3. // inserting elements
  4. map.set('name', 'Jack');
  5. map.set('age', '27');
  6. // looping through Map
  7. for (let [key, value] of map) {
  8. console.log(key + '- ' + value);
  9. }

输出

  1. name- Jack
  2. age- 27
用户定义的迭代器

您可以手动创建迭代器并使用 for…of 循环遍历迭代器。例如,

  1. // creating iterable object
  2. const iterableObj = {
  3. // iterator method
  4. [Symbol.iterator]() {
  5. let step = 0;
  6. return {
  7. next() {
  8. step++;
  9. if (step === 1) {
  10. return { value: '1', done: false};
  11. }
  12. else if (step === 2) {
  13. return { value: '2', done: false};
  14. }
  15. else if (step === 3) {
  16. return { value: '3', done: false};
  17. }
  18. return { value: '', done: true };
  19. }
  20. }
  21. }
  22. }
  23. // iterating using for...of
  24. for (const i of iterableObj) {
  25. console.log(i);
  26. }

输出

  1. 1
  2. 2
  3. 3
for…of 与生成器

由于生成器是可重用的,所以可以以更简单的方式实现迭代器。然后你可以使用 for…of 遍历生成器。例如,

  1. // generator function
  2. function* generatorFunc() {
  3. yield 10;
  4. yield 20;
  5. yield 30;
  6. }
  7. const obj = generatorFunc();
  8. // iteration through generator
  9. for (let value of obj) {
  10. console.log(value);
  11. }

输出

  1. 10
  2. 20
  3. 30
for…of Vs for…in
for…offor…in
for…of 循环用于遍历 iterable 的值。for…in 循环用于遍历对象的键。
for…of 循环不能用于遍历对象。你可以用 for…in 来遍历一个可迭代的数组和字符串,但你应该避免将 for…in 用于 iterable

for…of 循环是在ES6中引入的。一些浏览器可能不支持它的使用。要了解更多信息,请访问JavaScript for…of Support

上一教程 :JS Inheritance                                          下一教程 :JS Proxies

参考文档

[1] Parewa Labs Pvt. Ltd. (2022, January 1). Getting Started With JavaScript, from Parewa Labs Pvt. Ltd: https://www.programiz.com/javascript/for-of

相关文章

最新文章

更多