javascript中的遍历方法有很多,今天,主要总结一下这些遍历方法如何跳出循环,欢迎各位大神和同行们指教和修正 首先,必须要知道的是:

return必须是使用在函数里面的return有2个作用,结束函数和返回结果

JS中的遍历有如下方式可以跳出循环

1.for方法 跳出循环

break 跳出当前循环,循环后面的代码仍然可以执行return 可以终止当前函数,循环后面的代码不可以执行continue 跳过当次循环,仍然执行后续的循环

function a(){

var arr = [1,3,5,7,9];

var id = 5;

for (var i = 0; i < arr.length; i++) {

if(arr[i]=== 1) continue; //跳过当次循环

console.log(arr[i])

if (arr[i] === id) {

break; //满足条件,跳出循环;循环后面的代码仍然可以执行

}

if (arr[i] === 6) {

return; //满足条件,可以终止当前函数

}

}

}

2.forEach方法跳出循环

无法使用break,continue来跳出遍历, 因为foreach是异步执行,可能在break之前代码就已经执行完了forEach()本身无法跳出循环,必须遍历所有的数据才能结束通过抛出异常的方式跳出循环 实现break效果

// 在forEach中,无法用break等函数在遍历结束之前结束遍历,如果要提前终止,必须把forEach()方法放在一个try块中,并能抛出一个异常。

var arr = [1,3,5,7,9];

var id = 5;

try {

arr.forEach(function (curItem, i) {

if(curItem === 1) return;

console.log(curItem)

if (curItem === id) {

throw Error(); //满足条件,跳出循环

}

})

} catch (e) {

}

通过return跳过当次循环 实现continue的效果

arr.forEach(function (curItem, i) {

if(curItem === 1) return;

console.log(curItem)

if (curItem === id) {

return; //满足条件,跳出当次循环

// break 语法报错;

}

})

3. map() 跳出循环

map和forEach一样无法通过break跳出循环。map() 和 forEach()的区别

// 前者不改变原数组的内容

// 后者改变原数组的内容

4. for of 跳出循环

continue 跳出当次循环

for (let i of arr) {

if (i === 3) {

continue

}

console.log(i)

}

break 跳出当前循环

for (let i of arr) {

if (i === 3) {

break

}

console.log(i)

}

return 可以终止当前函数,循环后面的代码不可以执行

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

function b(){

for(var key of a){

if(key=2){

return false

};

console.log('哈哈哈')}

};

console.log(b()) //false

5. while do while 跳出循环

continue 跳出当次循环

let j = 1

while (j < 6) {

if (j === 3) {

j++

continue

}

console.log(j) // 1 2 4 5

j++

}

break 跳出当前循环

var i=0;

while (i < 6) {

if (i === 3) {

i++

break

}

console.log(i) // 0,1,2

i++

}

return 可以终止当前函数,循环后面的代码不可以执行

var i=0;

while (i < 6) {

if (i === 3) {

return

}

console.log(i)

i++

}

every 遍历

every可以通过return的返回bool值,控制是否继续遍历。

let arr = [1, 2, 3, 4, 5]

arr.every(i => {

console.log(i)

return true //1,2,3,4,5

})

arr.every(i => {

console.log(i)

if (i === 3) {

return false //1,2,3

} else {

return true

}

})

some 遍历

some 可以通过控制return true来结束遍历。如果没有写return,会遍历到最后一个值,默认给true关闭

let arr = [1, 2, 3, 4, 5]

arr.some(i => {

console.log(i) // 1,2,3,4,5

})

arr.some(i => {

console.log(i)

if (i === 3) {

return true //1,2,3

}

})

}

推荐链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。