《三分鐘閱讀》你不知道的forEach的一些小細節

2021-09-24 06:27:16 字數 1474 閱讀 2930

三分鐘閱讀:給自己3分鐘的時間,拾起自己遺漏的知識點,這是第一期

從今天開始,我準備寫個《三分鐘閱讀》系列,三分鐘時間不長,無法系統的介紹乙個知識點,但能夠描述清楚乙個知識點的一部分。我的初衷是三分鐘能夠給你的知識網路添塊磚,幫你拾起一些自己平常容易忽略的知識點,每天進步一點點。

今天的主題準備講講foreachforeach一般用來遍歷陣列,有時候為了提高效能,在處理完資料之後,我們會提前跳出迴圈,通過breakreturncontinue,然而,在foreach中是有點問題的。

我們看下面這個例子,我們想在遍歷到第二個位置的時候,跳出迴圈。

const array = [1,2,3];

array.foreach((item,index)=>

console.log(item);

})複製**

輸出結果是啥呢?咋一看,你可能會說是1,但實際執行我們會發現結果是1 3,因為foreach裡面,使用return並不會終止迴圈,會繼續遍歷。

把之前例子修改一下,同樣,我們想遍歷到第二個位置的時候,中止迴圈,期望輸出結果是1

const array = [1,2,3];

array.foreach((item,index)=>

console.log(item);

})複製**

執行一下,你會發現直接報錯,提示unsyntactic break

再修改一下,我們希望跳過2,直接輸出1 3

const array = [1,2,3];

array.foreach((item,index)=>

console.log(item);

})複製**

同樣,類似於break,報錯,提示unsyntactic continue

視情況跳出中止迴圈在我們業務開發中是很常見,因為能夠減少無謂的遍歷,從而降低**執行時間,提高效能,所以替代方式都有哪些呢?

通過簡單的for迴圈或者for...of迴圈,return、break、continue都能夠正常執行

通過es6提供的一些新api,比如完成某個條件就跳出遍歷,我們可以使用every()或者some()方法

最後,在遍歷陣列的時候多想想什麼樣的方法比較適合,不要一碰到遍歷,就使用foreachmap,如果可以提前中止迴圈,就要學會提前中止,減少**執行時間。

沉默三分鐘

網上見此真情之文,藉以自表 原文 http www.hecaitou.net p 3018 沉默三分鐘是心祭。那麼多年了,國旗終於為平民而降。那麼多天了,全民哀悼終於實現。與此同時,火炬停止傳遞,因為這不是乙個歡慶的時刻。很多年後回顧2008年,我 也許寧可它從日曆中消失。還沒有哪一年和今年一樣,才...

《每天感恩三分鐘》

每天感恩三分鐘 有位104歲的老太太耳聰目明,老而彌堅。有人向她請教長壽秘訣,老太太笑了 我有一帖靈丹妙藥,那就是每天化三分鐘時間感恩。她說,化一分鐘感恩父母 丈夫 兒女 鄰居和陌生人 一分鐘感恩大自然給予的種種關懷和體貼 一分鐘感恩每乙個祥和 溫暖和快樂的日子 感恩使她心裡永遠流淌著幸福的泉水,有...

三分鐘讀懂ZeroMQ

zeromq可以分開來看zero mq,mq就是message queue訊息佇列。zero是零,它代表零中介軟體 none broker 零延遲,同時,它又有了新的含義 零管理 零成本 零浪費。總的來說,零表示最小 最簡,這是貫穿於該項目的哲理。致力於減少複雜程度,提高易用性。訊息佇列有四個典型應...