js forEach一处细节

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/themagickeyjianan/article/details/88825383

---错误例子---

1)这里的return并不是返回让check 提前结束

var data = [1, 2, 3, 4];

function check(){
    data.forEach(function (val, i, arr) {
        if(val == 1){
            console.log('find');
            return;   // 这里的return并不是返回让check 提前结束
        }
    });

    console.log('no find');
}

check();

/**
 find
 no find
 */

2)这里的return并不是返回让forEach提前结束

var data = [1, 2, 3, 4];

function check(){
    data.forEach(function (val, i, arr) {
        console.log('find');
        return;
    });

    console.log('no find');
}

check();

/**
 find
 find
 find
 find
 no find
 */

3)错误用法

var data = [1, 2, 3, 4];

function check(){
    data.forEach(function (val, i, arr) {
        console.log('find');
        return;
    });

    console.log('no find');
}

check();

/**
 find
 find
 find
 find
 no find
 */

---正确写法---

var data = [1, 2, 3, 4];

function check(){

    for(var i = 0; i < data.length; i++){
        var val = data[i];
        console.log('find');
        return;
    }

    console.log('no find');
}

check();

/**
 find
 */

总结:

1.所以当有想让遍历提前返回的话,这种还是用for(var i = 0; i < arr.length; i++){} 吧

2.仅仅为了遍历一遍数组,那么forEach更简单一点

猜你喜欢

转载自blog.csdn.net/themagickeyjianan/article/details/88825383
今日推荐