日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

三種在JavaScript中終止forEach循環的方式

來源: 責編: 時間:2023-12-19 17:15:20 234觀看
導讀面試官:你能停止 JavaScript 中的 forEach 循環嗎?這是我在面試中曾被問到的一個問題,我當初的回答是:“不,我不能這樣做。”不幸的是,我的回答導致面試官突然結束了面試,對的,是突然結束的!我對結果感到沮喪,問面試官:“為什么?

面試官:你能停止 JavaScript 中的 forEach 循環嗎?這是我在面試中曾被問到的一個問題,我當初的回答是:“不,我不能這樣做。”eWG28資訊網——每日最新資訊28at.com

eWG28資訊網——每日最新資訊28at.com

不幸的是,我的回答導致面試官突然結束了面試,對的,是突然結束的!eWG28資訊網——每日最新資訊28at.com

我對結果感到沮喪,問面試官:“為什么?實際上可以停止 JavaScript 中的 forEach 循環嗎?”eWG28資訊網——每日最新資訊28at.com

在面試官回答之前,我花了一些時間解釋我對為什么我們不能直接停止 JavaScript 中的 forEach 循環的理解。eWG28資訊網——每日最新資訊28at.com

一、序言

這個問題估計會難倒一部分同學。甚至會有人反問,forEach循環在JavaScript中能終止嗎? 比如 ,我舉個例子eWG28資訊網——每日最新資訊28at.com

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循環。 forEach相當于就是函數的執行,比如下面這段代碼,即使func1執行了return語句,仍然會打印出2。eWG28資訊網——每日最新資訊28at.com

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

二、終止方法

然而,我能想到三種方式可以終止forEach循環。eWG28資訊網——每日最新資訊28at.com

1. 拋出錯誤

當找到一個大于等于0的數字之后,return循環將終止執行,所以控制臺只會輸出數字0,代碼如下:eWG28資訊網——每日最新資訊28at.com

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循環。代碼如下eWG28資訊網——每日最新資訊28at.com

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循環。代碼如下:eWG28資訊網——每日最新資訊28at.com

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和someeWG28資訊網——每日最新資訊28at.com

在日常工作中,一般是不會出現一種情況是讓你終止forEach循環的,如果有終止的情況,可以使用for和some方法。eWG28資訊網——每日最新資訊28at.com

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循環的方法就先介紹到這里了,希望對你有所幫助,感謝你的閱讀,編程快樂!eWG28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-49907-0.html三種在JavaScript中終止forEach循環的方式

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 七個常用的 Vue 3 UI 組件

下一篇: 你應該了解的 15 個 CSS 隱藏屬性

標簽:
  • 熱門焦點
  • 紅魔電競平板評測:大屏幕硬實力

    前言:三年的疫情因為要上網課的原因激活了平板市場,如今網課的時代已經過去,大家的生活都恢復到了正軌,這也就意味著,真正考驗平板電腦生存的環境來了。也就是面對著這種殘酷的
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開始學習反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無法成功對代碼進行反混淆,尤其是使用自定義混淆器對其進行混淆時。什么是混
  • 2023 年的 Node.js 生態系統

    隨著技術的不斷演進和創新,Node.js 在 2023 年達到了一個新的高度。Node.js 擁有一個龐大的生態系統,可以幫助開發人員更快地實現復雜的應用。本文就來看看 Node.js 最新的生
  • 三言兩語說透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是兩種很有用的技術,可以幫助我們寫出更加優雅、泛用的函數。本文將首先介紹柯里化和反柯里化的概念、實現原理和應用
  • 多線程開發帶來的問題與解決方法

    使用多線程主要會帶來以下幾個問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結束訪問某一數據期間,該數據被其他的線程所修改,那么對于當前線程而言,該線程
  • 2023年,我眼中的字節跳動

    此時此刻(2023年7月),字節跳動從未上市,也從未公布過任何官方的上市計劃;但是這并不妨礙它成為中國最受關注的互聯網公司之一。從2016-17年的抖音強勢崛起,到2018年的&ldquo;頭騰
  • 四年持續更迭堅持探索行業無人之境,HarmonyOS 4帶來五大升級多項創新

    除了華為每年新發布的旗艦手機系列,上億花粉更加期待鴻蒙系統每次的跨版本大更新。8月4日,HarmonyOS 4于HDC 2023正式發布,這也是該系統歷經四年的再
  • 英特爾Xe-HP項目終止,將專注Xe-HPC/HPG系列顯卡

    據10 月 31 日消息報道,英特爾高級副總裁兼加速計算系統和圖形事業部總經理 表示,Xe-HP“ Arctic Sound” 系列服務器 GPU 已經應用于 oneAPI devcloud 云服
  • Windows 11發布,微軟一改往常對老機型開放的態度

    距離 Windows 11 發布已經過去一周,在過去一周里,很多數碼愛好者圍繞其對 Android 應用的支持、對老機型的升級問題展開了激烈討論。與以往不同的是,在這次大
Top 主站蜘蛛池模板: 闸北区| 津市市| 正镶白旗| 镇安县| 大石桥市| 黄陵县| 兴仁县| 康平县| 平远县| 庐江县| 特克斯县| 濮阳县| 宝坻区| 哈巴河县| 临沂市| 巴林右旗| 运城市| 梓潼县| 新河县| 丘北县| 杨浦区| 瑞安市| 罗甸县| 南投市| 霍林郭勒市| 武功县| 抚宁县| 大港区| 莆田市| 邵阳县| 河南省| 洪湖市| 竹溪县| 克山县| 奈曼旗| 连州市| 常熟市| 苏尼特右旗| 白银市| 禄丰县| 仁化县|