JavaScript 数组遍历

原文连接

《JavaScript 数组遍历》javascript

参考

For-each over an array in JavaScript?
Why is 'for(var item in list)' with arrays considered bad practice in JavaScript?
forEach and runtime costhtml


开始遍历

多种选择:java

  • for数组

  • for-in浏览器

  • forEach 以及相关的(ES5+)ide

  • for-of(ES6+)oop

  • 使用迭代器(ES6+)
    <!-- more -->code

先声明并初始化一个数组吧:let a = ["a", "b", "c"];htm

使用 for 循环

for (let i = a.length; i--; ) {
    console.log(a[i]);
}

使用 for-in (不推荐)

for (let i in a) {
    console.log(a[i]);
}

forEach 以及相关的

a.forEach((e, i, a) => console.log(`element:${e}, index:${i}, array:${a}`));
a.map(n => console.log(n));

使用 for-of

for (let val of a) {
    console.log(val);
}

使用迭代器

for (let entry, itr = a[Symbol.iterator](); !(entry = itr.next()).done; ) {
    console.log(entry.value);
}

比较上述遍历方式

  • for 这是最多见的遍历方式,浏览器都支持blog

  • for-in 不推荐,两个缘由:不能保证遍历的顺序是预期的;遍历可能会带出原型链上的属性

  • forEach() 很是好用的遍历方式,ES5+,若是担忧运行时资源消耗的问题,能够看看 forEach and runtime cost。缺陷是不能使用 break,但能够用 try-catch 来 hack

  • map() ES5+,适用于“链式”场景,如 a.map(i => i + i).sort();

  • for-of ES6+,适用于所有元素的遍历,缺陷是不知道 index

  • 迭代器,ES6 新特性,你们能够慢慢玩


EOF

相关文章
相关标签/搜索