JavaScript 陣列方法對比

塗鴉碼龍發表於2017-02-15

JavaScript 提供了多種新增,移除,替換陣列元素的方法,但是有些會影響原來的陣列;有些則不會,它是新建了一個陣列。

注意:區分以下兩個方法的不同點:

  1. array.splice() 影響原來的陣列
  2. array.slice() 不影響原來的陣列

I. 新增:影響原陣列

使用 array.push()array.ushift() 新增元素會影響原來的陣列。

II. 新增:不影響原陣列

兩種方式新增元素不會影響原陣列,第一種是 array.concat()

第二種方法是使用 JavaScript 的展開(spread)操作符,展開操作符是三個點(…)

展開操作符會複製原來的陣列,從原陣列取出所有元素,然後存入新的環境。

III. 移除:影響原陣列

使用 array.pop()array.shift() 移除陣列元素時,會影響原來的陣列。

array.pop()array.shift() 返回被移除的元素,你可以通過一個變數獲取被移除的元素。

array.splice() 也可以刪除陣列的元素。

array.pop()array.shift() 一樣,array.splice() 同樣返回移除的元素。

IV. 移除:不影響原陣列

JavaScript 的 array.filter() 方法基於原陣列建立一個新陣列,新陣列僅包含匹配特定條件的元素。

以上程式碼的條件是“不等於 ‘e’ ”,因此新陣列(arr2)裡面沒有包含 ‘e’。


箭頭函式的獨特性

單行箭頭函式,’return’ 關鍵字是預設自帶的,不需要手動書寫。

可是,多行箭頭函式就需要明確地返回一個值。


另一種不影響原陣列的方式是 array.slice()(不要與 array.splice() 混淆)。

V. 替換:影響原陣列

如果知道替換哪一個元素,可以使用 array.splice()

VI. 替換:不影響原陣列

可以使用 array.map() 建立一個新陣列,並且可以檢查每一個元素,根據特定的條件替換它們。

使用 array.map() 轉換資料

array.map() 是個強力方法,可以用於轉換資料,而不汙染原先的資料來源。

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

JavaScript 陣列方法對比 JavaScript 陣列方法對比

相關文章