最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js中幾種循環(huán)的退出方式實(shí)例總結(jié)

 更新時(shí)間:2022年12月08日 12:02:12   作者:我不會JavaScript  
提到在一段程序中如果碰到需要終止,結(jié)束一個(gè)循環(huán),函數(shù)或者一段代碼,一般會想到以下這幾個(gè)關(guān)鍵字return、continue、break,這篇文章主要給大家介紹了關(guān)于js中幾種循環(huán)的退出方式,需要的朋友可以參考下

一、for循環(huán)

終止for循環(huán)的方式:break和continue

break:退出循環(huán) continue:退出本次循環(huán)

let list = [1, 2, 3, 4]
for (let i = 0; i < list.length; i++) {
  if (i == 1) {
    continue
  }
  if (i == 2) { 
    break;
  }
}

二、forEach循環(huán)

用return、break、continue的方式都不能終止forEach循環(huán),return在forEach里相當(dāng)于for循環(huán)里的continue,能夠退出本次循環(huán),可以使用try...chtch終止foreach循環(huán)

try{
  var array = ["first","second","third","fourth"];
  // 執(zhí)行到第3次,結(jié)束循環(huán)
  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;
}
// 下面的代碼不影響繼續(xù)執(zhí)行
console.log("繼續(xù)執(zhí)行。。。");

二、map循環(huán)

·map和forEach的區(qū)別

  • map不會改變原數(shù)組,而是會返回一個(gè)新的數(shù)組,數(shù)組中的元素為原數(shù)組調(diào)用callback函數(shù)處理后的值;如果是空數(shù)組,map返回的也是空數(shù)組
  • forEach只針對數(shù)組的每個(gè)元素調(diào)用callback,沒有返回值,對于空數(shù)組是不會調(diào)用回調(diào)函數(shù)的,也沒有返回值

終止map循環(huán)的方式和forEach相同

let list = [1, 2, 3, 4]
try {
  list?.map(item => {
    console.log('執(zhí)行');
    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并不適合提前終止循環(huán)的情景,可以用every()、some()代替

三,for in 循環(huán)

for…in循環(huán)主要是為了遍歷對象的,break或continue可以生效

注:當(dāng)for…in用來遍歷數(shù)組時(shí),遍歷的結(jié)果為當(dāng)前元素索引值的字符串形式

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 循環(huán)

for…of和for…in都能用break和continue結(jié)束(跳出當(dāng)前)循環(huán)

我們都知道for…of只能用來遍歷那些內(nèi)置iterator(Array, Atring, ArrayLike, Set, Map…)或者實(shí)現(xiàn)了@@iterator方法的數(shù)據(jù)類型,而普通的Object并沒有內(nèi)置iterator

for (const val of arr) {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->
if (val === 2) {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->
continue;
}
if (val === 3) {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->
break;
}
}

五,every()和some()

every():相當(dāng)于且,只要有一個(gè)不滿足條件,就return false,只有都滿足條件才會返回true

some():相當(dāng)于或,只要有一個(gè)滿足條件,就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) // false

var some = list.some(function (item) {
  return item.age > 4
})
console.log(some) // true

some退出循環(huán):return / return true(不能return false) every退出循環(huán):return false

附:return、continue、break三者的區(qū)別

  • break: 終止整個(gè)循環(huán)(有內(nèi)層循環(huán)時(shí)終止的是內(nèi)層循環(huán)),退出switch語句;只能用于循環(huán)或者switch語句中,其他地方使用會報(bào)錯(cuò)
  • continue:與break相似,不同之處在于結(jié)束的是本次循環(huán),相當(dāng)于跳過本次循環(huán)執(zhí)行下一次循環(huán);只能用于while,do/while,for,for/in循環(huán)中,其他地方使用會報(bào)錯(cuò)
  • return: return false截?cái)嗾Z句之后的代碼執(zhí)行,如果用于函數(shù)中,可以返回一個(gè)特點(diǎn)的值,做完函數(shù)的返回值;不能用在循環(huán)中

總結(jié) 

到此這篇關(guān)于js中幾種循環(huán)的退出方式的文章就介紹到這了,更多相關(guān)js循環(huán)退出方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js限制輸入框只能輸入數(shù)字(onkeyup觸發(fā))

    js限制輸入框只能輸入數(shù)字(onkeyup觸發(fā))

    這篇文章主要介紹了通過js實(shí)現(xiàn)input輸入框只能輸入數(shù)字的實(shí)現(xiàn)方法,主要是通過正則表達(dá)式替換實(shí)現(xiàn),需要的朋友可以參考下
    2018-09-09
  • 如何實(shí)現(xiàn)axios的自定義適配器adapter

    如何實(shí)現(xiàn)axios的自定義適配器adapter

    Axios是一個(gè)非常優(yōu)秀的基于promise的HTTP庫,可以用在瀏覽器和node.js中。并且提供了很多便捷的功能,但如果我們想基于axios 擴(kuò)展一些自己的數(shù)據(jù)請求方式(例如某些APP內(nèi)專屬的數(shù)據(jù)請求方式等),并能夠使用上axios提供的便捷功能,該怎么自定義一個(gè)適配器adapter
    2021-05-05
  • JavaScript事件對象event用法分析

    JavaScript事件對象event用法分析

    這篇文章主要介紹了JavaScript事件對象event用法,結(jié)合實(shí)例形式分析了事件對象event中常用的屬性、方法、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • js select option對象小結(jié)

    js select option對象小結(jié)

    本篇文章主要是對js中的select option對象進(jìn)行了總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • JavaScript實(shí)現(xiàn)圖片拖曳效果

    JavaScript實(shí)現(xiàn)圖片拖曳效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)圖片拖曳效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • BootStrap表單驗(yàn)證實(shí)例代碼

    BootStrap表單驗(yàn)證實(shí)例代碼

    這篇文章主要介紹了bootstrap表單驗(yàn)證的實(shí)例代碼,代碼中包括引入的js文件,具體實(shí)現(xiàn)方法,大家參考本文
    2017-01-01
  • Javascript中的getter和setter初識

    Javascript中的getter和setter初識

    最近在工作中遇到了getter和setter,getter 是一種獲得屬性值的方法,setter是一種設(shè)置屬性值的方法。下面這篇文章主要給大家介紹了關(guān)于Javascript中g(shù)etter和setter的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • 微信小程序?qū)崿F(xiàn)圖片上傳放大預(yù)覽刪除代碼

    微信小程序?qū)崿F(xiàn)圖片上傳放大預(yù)覽刪除代碼

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)圖片上傳放大預(yù)覽刪除代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Js跳出兩級循環(huán)方法代碼實(shí)例

    Js跳出兩級循環(huán)方法代碼實(shí)例

    這篇文章主要介紹了Js跳出兩級循環(huán)方法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 判斷輸入的字符串是否是日期格式的簡單方法

    判斷輸入的字符串是否是日期格式的簡單方法

    下面小編就為大家?guī)硪黄猨s判斷輸入的字符串是否是日期格式的簡單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-07-07

最新評論

伊宁县| 扶风县| 北宁市| 渭南市| 阳信县| 蓬莱市| 荔浦县| 隆安县| 卓尼县| 镇康县| 哈密市| 伽师县| 沧州市| 沛县| 乐平市| 南开区| 阳新县| 马关县| 信阳市| 璧山县| 驻马店市| 武隆县| 泾阳县| 泰顺县| 高要市| 平泉县| 汤原县| 利辛县| 樟树市| 诸暨市| 兴山县| 稻城县| 万盛区| 日土县| 沁水县| 郸城县| 大关县| 博客| 若尔盖县| 塘沽区| 察哈|