陣列的基礎方法,就不一一介紹了,這裡會介紹一些常用的ES6
的一些常用方法,
在這之前,先說一些陣列的常見問題。
1 陣列的構建
陣列的普通呼叫,等於構造呼叫。
下面的3種方式,都是一樣的。
let arr = Array(1, 2)
let arr1 = new Array(1, 2)
let arr2 = [1, 2]
複製程式碼
2 稀疏陣列
- 產生
- 陣列的普通呼叫和構造呼叫,如果只傳一個數字,則該數字就是陣列的
length
,不是內容。也就是說,陣列有length
,但沒有任何單元,列印顯示為empty
。如果傳的不是數字,就作為陣列第一項的值。
let arr = Array(2) // [empty, empty]
let arr1 = new Array(2) // [empty, empty]
let arr2 = Array('2') // ["2"]
let arr4 = new Array('2') // ["2"]
複製程式碼
- 跳著插入引起
陣列length以現有陣列元素,最大下標值計算
let arr = [1, 2, 4]
arr[5] = 7
console.log(arr) // [1, 2, 4, empty, empty, 7]
複製程式碼
- 由length非只讀引起
let arr = [1, 2, 4]
arr.length = 5
console.log(arr) // [1, 2, 4, empty, empty]
複製程式碼
- 逗號引起
陣列末尾處,有一個逗號沒關係,會自動省略。但超過一個,就有問題
陣列中間,或是開頭,多一個逗號,都會有問題
let arr = [1, 2, 4, , ,] // [1, 2, 4, empty, empty]
let arr = [1, 2, , 4] // [1, 2, 4, empty, 4]
複製程式碼
- 注意,列印輸出稀疏陣列時,沒有的元素,顯示為empty,但是該位置是undefined
let arr = [1, 2, , 4] // [1, 2, 4, empty, 4]
console.log(arr[2]) // undefined
複製程式碼