關於JS迴圈效率小實驗
最近工作的時候遇到了一個需求,後臺返回三維陣列,為了避免一直對後臺請求,由前端把資料放到了本地進行狀態的更改。最開始的想法是因為是三維陣列所以肯定會利用到幾次迴圈,為了簡化程式碼,我先是使用了find方法去查詢元素。利用三次find方法找到了我想要的資料然後進行更改。但是find方法會有相容性問題,雖然看起來簡便但是我覺得並不是很友好的方案。所以,我分別利用for,for in, indexOf,find遍歷陣列檢視效率(每個方法只進行了三次記錄,而且在chrome瀏覽器,沒有測試其他瀏覽器)。這裡沒有使用foreach方法是因為foreach會把所有的陣列都迴圈,不能中斷,所以我淘汰了這個方法。
for迴圈我使用了break來增加效率。最後得到的資料:
find方法:1265,1255,1172;
for迴圈方法:103,106,102;
for in 方法:19301,19287,19288;
indexOf方法:92,85,86;
從資料看出,indexOf方法是最快的,但是也會出現相容性,除此以外就是for迴圈最快了。雖然for迴圈很麻煩,但是效率確實是最高的。所以我確認使用for迴圈在專案中,但是三個for迴圈還要加上if判斷最後還有邏輯的處理層級太多,對於以後的需求改變會很麻煩,所以不能直接巢狀for迴圈來取值。我就想解耦,把for迴圈拆分開。
把三個迴圈分開,最後在利用x,y,z來處理邏輯。這樣就把迴圈和邏輯分開了。這是自己想到的辦法,有更好的辦法感謝簡友分享。
相關文章
- Nodejs事件迴圈小記NodeJS事件
- 彙編實驗小記(五)-迴圈程式設計程式設計
- 關於spring迴圈依賴的一點小感悟Spring
- 關於delete cascade的小實驗delete
- JS事件迴圈JS事件
- C語言實驗——for迴圈列印圖形(迴圈結構)(sdut oj)C語言
- JS優化迴圈之展開迴圈JS優化
- JS陣列迴圈的效能和效率分析(for、while、forEach、map、for of)JS陣列While
- 關於一個迴圈請求與迴圈計時器的問題
- 一個關於JAVA GC的小實驗JavaGC
- iOS 關於NSTimer的迴圈引用iOS
- nodejs事件迴圈NodeJS事件
- 迴圈結構程式設計 實驗題目程式設計
- js迴圈累加以後,結尾出現很多小數JS
- JS事件迴圈Event LoopJS事件OOP
- JS 事件迴圈(Event Loop)JS事件OOP
- JS事件迴圈EventLoop初探JS事件OOP
- JS事件迴圈詳解JS事件
- js jquery 結束迴圈JSjQuery
- 關於JS中for迴圈時,作用域問題和this指標指向的總結JS指標
- Golang for迴圈遍歷小坑Golang
- react在jsx語法中實現for迴圈ReactJS
- 關於我對Spring迴圈依賴的思考Spring
- 關於面試題“ArrayList迴圈remove()要用Iterator”的研究面試題REM
- 探討兩種迴圈表示方法的區別,while迴圈與for迴圈的小總結While
- [譯] 所有你需要知道的關於完全理解 Node.js 事件迴圈及其度量Node.js事件
- 關於ListView或控制元件選擇迴圈切換的實現方法View控制元件
- JS專題之事件迴圈JS事件
- JS 總結之事件迴圈JS事件
- JS效能優化 之 FOR迴圈JS優化
- JS迴圈和條件分支JS
- js--事件迴圈機制JS事件
- 剖析nodejs的事件迴圈NodeJS事件
- 重學JS(八)—— 跳出迴圈JS
- kmdjs和迴圈依賴JS
- JavaScript的map迴圈、forEach迴圈、filter迴圈、reduce迴圈、reduceRight迴圈JavaScriptFilter
- 用Node.js實現檔案迴圈覆寫Node.js
- 關於迴圈巢狀nested loops的一點分析巢狀OOP