关于js中遍历总结

关于js中遍历总结

1.for循环

 1 var
 2     arr = [];
 3 for (var i = 0; i < arr.length; i++) {
 4     if (条件1)
 5         return;
 6     if (条件2)
 7         break;
 8     if (条件3)
 9         continue;
10 };

js最常用的循环必然是for循环,最基础的用法,用于数组遍历,但是代码书写过多。

 1 var
 2     arr = [];
 3 Array.prototype.customFunc = function () { };
 4 for (var item in arr) {
 5     if (!arr.hasOwnProperty(item)) {
 6         if (条件1)
 7             return;
 8         if (条件2)
 9             break;
10         if (条件3)
11             continue;
12     }
13 };

var in的形式遍历用于遍历数组并不理想,这个遍历方式是遍历属性的,特殊情况下是可以使用,使用这种遍历方式会将数组本身的属性也遍历出来,比如我们在Array上扩展一个方法customFunc,此时遍遍历数组会将customFunc也遍历出来达不到预期效果,非要用怎么办,加一层判断利用hasOwnProperty方法将数组原型中的属性扣出去,这样遍历就不用担心前面的问题了。

2.ES5遍历方式

var
    arr = [];
arr.forEach((item, index) => {
    if (条件)
        return;
})

forEach是ES5定义的一种遍历方式,这个方法用起来很方便,但是弊端是无法使用break,continue,也就是无法跳出一次循环,只能用return结束整个函数执行,这点就比较尴尬了,如果有跳出循环的逻辑还是用for循环吧。效率上for循环也高于forEach。

3.ES6遍历方式

 1 var
 2     arr = [];
 3 for (var item of arr) {
 4     if (条件1)
 5         return;
 6     if (条件2)
 7         break;
 8     if (条件3)
 9         continue;
10 }

ES6的for循环写法。这种方式非常好,弥补了for(var in)的弊端,也弥补了forEach的弊端。而且这种遍历方式还可以对String、Object等等进行遍历。

以上列举了一下常用的遍历方式,在这里mark一下。