陣列總結,持續更新~

非梧不棲發表於2018-06-20

陣列的基礎方法,就不一一介紹了,這裡會介紹一些常用的ES6的一些常用方法,

在這之前,先說一些陣列的常見問題。

1 陣列的構建

陣列的普通呼叫,等於構造呼叫。

下面的3種方式,都是一樣的。

let arr = Array(1, 2)
let arr1 = new Array(1, 2)
let arr2 = [1, 2]
複製程式碼

2 稀疏陣列

  • 產生
  1. 陣列的普通呼叫和構造呼叫,如果只傳一個數字,則該數字就是陣列的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"]
複製程式碼
  1. 跳著插入引起

陣列length以現有陣列元素,最大下標值計算

let arr = [1, 2, 4]
arr[5] = 7
console.log(arr)    // [1, 2, 4, empty, empty, 7]
複製程式碼
  1. 由length非只讀引起
let arr = [1, 2, 4]
arr.length = 5
console.log(arr)    // [1, 2, 4, empty, empty]
複製程式碼
  1. 逗號引起

陣列末尾處,有一個逗號沒關係,會自動省略。但超過一個,就有問題

陣列中間,或是開頭,多一個逗號,都會有問題

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
複製程式碼

相關文章