關於JS數組遍歷方法的總結
JS的陣列遍歷是專案中必須用到的,為了寫出優雅的程式碼,將方法用在對的地方,在這裡將幾種方法做個對比,這裡用es6的方式展示出來,需要搭建轉換es5環境,這不是這篇的重點,下一篇可以寫這篇。
一、for迴圈
使用頻率最高,前端都會用,表示自己一開始只會用for迴圈。 。 。
let arr = ['123', '456', '789'];for (let i = 0; i < arr.length; i ++) { console.log(arr[i]); }
最常用,但有最佳化空間:
for (let i = 0, len = arr.length; i < len; i ++) { console.log(arr[i]); }
使用臨時變量,將length值存起來,避免重複取得數組長度。
二、for…of循環
es6新增的循環方式,比es5的for迴圈更簡單且高效,它還提供三個新方法:
#key()是對鍵名的遍歷;
value()是對鍵值的遍歷;
entries ()是對鍵值對的遍歷;
let arr = ['科大讯飞', '政法BG', '前端开发']; for (let item of arr) { console.log(item); } // 输出数组索引 for (let item of arr.keys()) { console.log(item); } // 输出内容和索引 for (let [item, val] of arr.entries()) { console.log(item + ':' + val); }
三、foreach迴圈
陣列的foreach方法使用頻率較高,但效能比for迴圈還弱。它有個優點,可以自動省略為空的陣列元素,相當於自動篩選。
let arr = ['科大讯飞', , '政法BG', , '前端开发']; arr.forEach((val,index)=>console.log(index,val));
四、filter循環
有循環的功能,主要用於過濾數組,接收一個方法,它會傳回符合函數的元素集合。
let arr = [{ label: '科大讯飞', value: 1 }, { label: '政法BG', value: 2 }, { label: '前端开发', value: 3 }]; const arr1 = arr.filter(list => list.value === 1); console.log(arr1);
五、some循環
和filter功能相同,不同的是,它會傳回boolean值,用來檢查陣列中是否存在某物件。
if (arr.some(list => list.value === 1)) { console.log('执行了!') }
所以它常用在if裡。
六、map循環
取代的作用,它會傳回一個由原始數組中每個元素呼叫回調函數後傳回值的集合。
let arr = [1, 2, 3, 4]; onst arr1 = arr.map(list => list * 2); console.log(arr1);
以上就是常用的陣列遍歷的方法,以後可以依照實際情況使用一種方法,不要所有地方用的都是for迴圈。
相關推薦:
#Java8的HashMap詳解(儲存結構,功能實現,擴容優化,執行緒安全,遍歷方法)
#重溫資料結構:二元樹的常見方法及三種遍歷方式Java 實作
以上是關於JS數組遍歷方法的總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

使用foreach循環移除PHP數組中重複元素的方法如下:遍歷數組,若元素已存在且當前位置不是第一個出現的位置,則刪除它。舉例而言,若資料庫查詢結果有重複記錄,可使用此方法移除,得到不含重複記錄的結果。

PHP中深度複製數組的方法包括:使用json_decode和json_encode進行JSON編碼和解碼。使用array_map和clone進行深度複製鍵和值的副本。使用serialize和unserialize進行序列化和反序列化。

PHP數組鍵值翻轉方法效能比較顯示:array_flip()函數在大型數組(超過100萬個元素)下比for迴圈效能更優,耗時更短。手動翻轉鍵值的for迴圈方法耗時相對較長。

PHP的array_group_by函數可依鍵或閉包函數將陣列中的元素分組,傳回關聯數組,其中鍵為組名,值是屬於該組的元素數組。

在PHP中執行陣列深度複製的最佳實踐是:使用json_decode(json_encode($arr))將陣列轉換為JSON字串,然後再轉換回陣列。使用unserialize(serialize($arr))將陣列序列化為字串,然後將其反序列化為新陣列。使用RecursiveIteratorIterator迭代器對多維數組進行遞歸遍歷。

多維數組排序可分為單列排序和嵌套排序。單列排序可使用array_multisort()函數依列排序;巢狀排序需要遞歸函數遍歷陣列並排序。實戰案例包括按產品名稱排序和按銷售量和價格複合排序。

PHP數組合併去重演算法提供了平行的解決方案,將原始陣列分成小塊並行處理,主進程合併區塊的結果去重。演算法步驟:分割原始數組為均等分配的小塊。並行處理每個區塊去重。合併區塊結果並再次去重。

PHP的array_group()函數可用來按指定鍵對陣列進行分組,以尋找重複元素。函數透過以下步驟運作:使用key_callback指定分組鍵。可選地使用value_callback確定分組值。對分組元素進行計數並識別重複項。因此,array_group()函數對於尋找和處理重複元素非常有用。
