日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
三種在JavaScript中終止forEach循環(huán)的方式

面試官:你能停止 JavaScript 中的 forEach 循環(huán)嗎?這是我在面試中曾被問到的一個問題,我當初的回答是:“不,我不能這樣做。”

利川ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

不幸的是,我的回答導致面試官突然結束了面試,對的,是突然結束的!

我對結果感到沮喪,問面試官:“為什么?實際上可以停止 JavaScript 中的 forEach 循環(huán)嗎?”

在面試官回答之前,我花了一些時間解釋我對為什么我們不能直接停止 JavaScript 中的 forEach 循環(huán)的理解。

一、序言

這個問題估計會難倒一部分同學。甚至會有人反問,forEach循環(huán)在JavaScript中能終止嗎? 比如 ,我舉個例子

const array = [ -3, -2, -1, 0, 1, 2, 3 ]
 
array.forEach((it) => {
  if (it >= 0) {
    console.log(it)
    // 0 1 2 3
    return // or break
  }
})

從這個例子來看,好像不管是通過return還是break都無法終止forEach循環(huán)。 forEach相當于就是函數的執(zhí)行,比如下面這段代碼,即使func1執(zhí)行了return語句,仍然會打印出2。

const func1 = () => {
  console.log(1)
  return
}
 
const func2 = () => {
  func1()
  console.log(2)
}
 
func2()

二、終止方法

然而,我能想到三種方式可以終止forEach循環(huán)。

1. 拋出錯誤

當找到一個大于等于0的數字之后,return循環(huán)將終止執(zhí)行,所以控制臺只會輸出數字0,代碼如下:

const array = [ -3, -2, -1, 0, 1, 2, 3 ]
 
try {
  array.forEach((it) => {
    if (it >= 0) {
      console.log(it) // 輸出:0
      throw Error(`We've found the target element.`)
    }
  })
} catch (err) {


}

2. 將數組長度設置成0

我們也能通過將數組長度設置成0來終止forEach循環(huán)。代碼如下

const array = [ -3, -2, -1, 0, 1, 2, 3 ]
 
array.forEach((it) => {
  if (it >= 0) {
    console.log(it) // 輸出:0
    array.length = 0
  }
})

3. 將數組元素移除

當滿足條件時,使用splice方法將數組內元素移除,也能終止forEach循環(huán)。代碼如下:

const array = [ -3, -2, -1, 0, 1, 2, 3 ]
 
array.forEach((it, i) => {
  if (it >= 0) {
    console.log(it) // 輸出:0
    array.splice(i + 1, array.length - i)
  }
})

三、建議

建議使用for和some

在日常工作中,一般是不會出現一種情況是讓你終止forEach循環(huán)的,如果有終止的情況,可以使用for和some方法。

for

const array = [ -3, -2, -1, 0, 1, 2, 3 ]
 
for (let i = 0, len = array.length; i < len; i++) {
  if (array[ i ] >= 0) {
    console.log(array[ i ])
    break
  }
}

some

const array = [ -3, -2, -1, 0, 1, 2, 3 ]
 
array.some((it, i) => {
  if (it >= 0) {
    console.log(it)
    return true
  }
})

最后,3種關于在JavaScript中終止forEach循環(huán)的方法就先介紹到這里了,希望對你有所幫助,感謝你的閱讀,編程快樂!


文章名稱:三種在JavaScript中終止forEach循環(huán)的方式
分享網址:http://www.5511xx.com/article/cdgihhh.html