位置: IT常识 - 正文
推荐整理分享js中几种循环的退出方式(js循环有哪些),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:js中循环语句有哪三种,js循环有几种,js中几种循环的区别,js循环有几种,js循环有几种,js有几种循环语句,js几种循环的区别,js中几种循环的区别,内容如对您有帮助,希望把文章链接给更多的朋友!
终止for循环的方式:break和continue break:退出循环 continue:退出本次循环
let list = [1, 2, 3, 4]for (let i = 0; i < list.length; i++) { if (i == 1) { continue } if (i == 2) { break; }}二、forEach循环用return、break、continue的方式都不能终止forEach循环,return在forEach里相当于for循环里的continue,能够退出本次循环,可以使用try...chtch终止foreach循环
try{ var array = ["first","second","third","fourth"]; // 执行到第3次,结束循环 array.forEach(function(item,index) { if(item == "third"){ throw new Error("EndIterative"); } console.log(item); // first second });}catch(e){ if(e.message != "EndIterative") throw e;}// 下面的代码不影响继续执行console.log("继续执行。。。");二、map循环·map和forEach的区别
map不会改变原数组,而是会返回一个新的数组,数组中的元素为原数组调用callback函数处理后的值;如果是空数组,map返回的也是空数组forEach只针对数组的每个元素调用callback,没有返回值,对于空数组是不会调用回调函数的,也没有返回值终止map循环的方式和forEach相同let list = [1, 2, 3, 4]try { list?.map(item => { console.log('执行'); if (item == 1) { throw new Error('stop') } })} catch (e) { if (e.message !== 'stop') { throw e }}list?.some(item => { if (item == 1) { return true }})可以看出,forEach和map并不适合提前终止循环的情景,可以用every()、some()代替
三,for in 循环for…in循环主要是为了遍历对象的,break或continue可以生效
注:当for…in用来遍历数组时,遍历的结果为当前元素索引值的字符串形式
const person = { name: "111", age: 18, 1: 1, job: "student",};for (const key in person) { if (key === "age") { break; } if (key === 'name') { continue; }}四,for of 循环for…of和for…in都能用break和continue结束(跳出当前)循环
我们都知道for…of只能用来遍历那些内置iterator(Array, Atring, ArrayLike, Set, Map…)或者实现了@@iterator方法的数据类型,而普通的Object并没有内置iterator
for (const val of arr) { if (val === 2) { continue; } if (val === 3) { break; } }
五,every()和some()every():相当于且,只要有一个不满足条件,就return false,只有都满足条件才会返回true
some():相当于或,只要有一个满足条件,就return true
let list = [ { name:"aaa", age:3 }, { name:"bbb", age:4 }, { name:"ccc", age:5 },]var every = list.every(function (item) { return item.age > 4})console.log(eve) // falsevar some = list.some(function (item) { return item.age > 4})console.log(some) // truesome退出循环:return / return true(不能return false) every退出循环:return false
下一篇:VUE 父子组件、兄弟组件 之间通信 最强详解(vue父子组件加载顺序)
友情链接: 武汉网站建设