亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

3種在JavaScript中終止forEach循環(huán)的方式

admin
2024年10月13日 22:59 本文熱度 1791

?

面試官:你能停止 JavaScript 中的 forEach 循環(huán)嗎?這是我在面試中曾被問(wèn)到的一個(gè)問(wèn)題,我當(dāng)初的回答是:“不,我不能這樣做?!?/span>

不幸的是,我的回答導(dǎo)致面試官突然結(jié)束了面試,對(duì)的,是突然結(jié)束的!

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

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

一、序言

這個(gè)問(wèn)題估計(jì)會(huì)難倒一部分同學(xué)。甚至?xí)腥朔磫?wèn),forEach循環(huán)在JavaScript中能終止嗎? 比如 ,我舉個(gè)例子

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  }})

從這個(gè)例子來(lái)看,好像不管是通過(guò)return還是break都無(wú)法終止forEach循環(huán)。 forEach相當(dāng)于就是函數(shù)的執(zhí)行,比如下面這段代碼,即使func1執(zhí)行了return語(yǔ)句,仍然會(huì)打印出2。

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

二、終止方法

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

1. 拋出錯(cuò)誤

當(dāng)找到一個(gè)大于等于0的數(shù)字之后,return循環(huán)將終止執(zhí)行,所以控制臺(tái)只會(huì)輸出數(shù)字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. 將數(shù)組長(zhǎng)度設(shè)置成0

我們也能通過(guò)將數(shù)組長(zhǎng)度設(shè)置成0來(lái)終止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. 將數(shù)組元素移除

當(dāng)滿(mǎn)足條件時(shí),使用splice方法將數(shù)組內(nèi)元素移除,也能終止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

在日常工作中,一般是不會(huì)出現(xiàn)一種情況是讓你終止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種關(guān)于在JavaScript中終止forEach循環(huán)的方法就先介紹到這里了,希望對(duì)你有所幫助,感謝你的閱讀,編程快樂(lè)!


該文章在 2024/10/14 10:14:59 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved