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