Javascript 陣列操作(一)增刪元素

更新於 2024/12/21閱讀時間約 7 分鐘

陣列基本的增刪元素方法。


  1. 新增1-從陣列前面新增元素:unshift()
  2. 新增2-從陣列尾端新增元素:push()
  3. 刪除1-從陣列前面刪除元素:shift()
  4. 刪除2-從陣列尾端刪除元素:pop()

這4個增刪元素的方法,都會直接改變原始陣列。

let arr = ['a', 'b', 'c', 'd', 'e'];
arr.unshift('x');
console.log(arr); // ['x', 'a', 'b', 'c', 'd', 'e']

arr.pop();
console.log(arr); // ['x', 'a', 'b', 'c', 'd']

刪除元素的方法,也可以返回被刪除的元素

let arr = ['a', 'b', 'c', 'd', 'e'];
const element = arr.shift();
console.log(element); // a
console.log(arr); // ['b', 'c', 'd', 'e']


在指定位置新增、移除或替換元素: splice()


基本語法​
array.splice(start, deleteCount, item1, item2, ...);

參數說明

  1. start(必需)
    指定從哪個索引開始操作:
    • 正數:從索引位置 start 開始。
    • 負數:從陣列末尾倒數第 start 個位置開始。
  2. deleteCount(可選)
    指定要從陣列中移除的元素數量:
    • 如果為 0,不會移除任何元素。
    • 如果省略該參數,將從 start 一直刪除到陣列末尾。
  3. item1, item2, ...(可選)
    新增到陣列中的元素(從 start 的位置插入)。

返回值

splice() 會返回一個包含被刪除元素的新陣列。
如果沒有刪除任何元素,則返回空陣列。

1. 移除元素

const arr = [1, 2, 3, 4, 5];
const removed = arr.splice(2, 2); // 從索引 2 開始,刪除 2 個元素
console.log(arr); // [1, 2, 5]
console.log(removed); // [3, 4]

2. 新增元素

const arr = [1, 2, 5];
arr.splice(2, 0, 3, 4); // 在索引 2 處插入 3 和 4,不刪除任何元素
console.log(arr); // [1, 2, 3, 4, 5]

3. 替換元素

const arr = [1, 2, 3, 4, 5];
arr.splice(1, 2, 99, 100); // 從索引 1 開始,刪除 2 個元素,並插入 99 和 100
console.log(arr); // [1, 99, 100, 4, 5]

4. 刪除直到結尾

const arr = [1, 2, 3, 4, 5];
arr.splice(2); // 從索引 2 開始,刪除到陣列末尾
console.log(arr); // [1, 2]

5. 使用負數索引

const arr = [1, 2, 3, 4, 5];
arr.splice(-2, 1); // 從倒數第二個位置開始,刪除 1 個元素
console.log(arr); // [1, 2, 3, 5]

6. 同時新增與刪除

const arr = [1, 2, 3, 5];
arr.splice(3, 0, 4); // 在索引 3 插入 4
arr.splice(1, 2, 99, 100); // 刪除兩個元素,插入 99 和 100
console.log(arr); // [1, 99, 100, 4, 5]
const arr = [1, 2, 3, 4];
arr.splice(1, 2, 9, 10); // [1, 9, 10, 4]


取得陣列中指定位置的元素: slice()

雖然與增刪元素無關,但為了對比splice,在此列出slice方法。

基本語法​
slice(start, end)

start(可選):開始提取的索引(包含),若為負數,則從陣列末尾開始計算。默認為 0。

end(可選):結束提取的索引(不包含),若為負數,則從陣列末尾開始計算。默認為陣列的長度。


返回值:返回一個新陣列,包含從 start 到 end(不包括 end)之間的元素。

範例

1:提取部分元素

let array = [10, 20, 30, 40, 50];
let slicedArray = array.slice(1, 3);

console.log(slicedArray); // [20, 30]


2:不提供 end 參數

若只提供 start 參數,slice() 會提取從 start 開始到陣列末尾的所有元素

let array = [10, 20, 30, 40, 50];
let slicedArray = array.slice(2);

console.log(slicedArray); // [30, 40, 50]


3:使用負數索引

slice() 方法的 start 和 end 可以是負數,表示從陣列末尾開始計算。

let array = [10, 20, 30, 40, 50];
let slicedArray = array.slice(-3, -1);

console.log(slicedArray); // [30, 40]
//slice(-3, -1):從倒數第 3 個元素開始提取,直到倒數第 1 個元素前結束。


4:不提供參數

如果不提供任何參數,slice() 會返回整個陣列的淺拷貝。

let array = [10, 20, 30, 40, 50];
let copiedArray = array.slice();

console.log(copiedArray); // [10, 20, 30, 40, 50]


與 splice() 的區別:

slice() 不改變原始陣列,返回提取的部分。

splice() 改變原陣列,刪除或添加元素,並返回被刪除的元素。



avatar-img
1會員
11內容數
愛看金庸的阿傑,想來分享一下我看金庸的點點滴滴。 講談金庸小說,免不了要爆一堆雷,所以請尚未看過金庸小說的朋友,跳過這裡,先去看金庸原著,享受金庸的武俠世界,別被爆雷破壞了第一次閱讀金庸小說的樂趣。 至於已看過金庸原著的朋友,歡迎一起分享你的觀點,小說劇情本就會各有解讀,各有領會,這才是現代文學的魅力!
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Ni 1968的沙龍 的其他內容
在 Vue 應用中直接使用 .reverse() 來修改陣列可能在開發環境中未出現問題,但在生產環境中卻可能導致重新渲染錯誤及資料順序不一致的問題。建議使用 .slice() 創建淺拷貝的解決方案,以確保 Vue 的反應性系統能正常運作並避免應用當機。
howler.js是一個強大的 JavaScript 音效庫,可以方便地在網頁上播放音效。 在 Vue.js 中使用 Howler.js 可以輕鬆地管理和播放音效。
如何在 Vite 專案中安裝和設置 TypeScript 及路徑別名的步驟,包括安裝必要的依賴、配置 vite.config.js、tsconfig.json 的設置,及如何創建類型聲明文件來正確識別 .vue 文件。
在 Vue 應用中直接使用 .reverse() 來修改陣列可能在開發環境中未出現問題,但在生產環境中卻可能導致重新渲染錯誤及資料順序不一致的問題。建議使用 .slice() 創建淺拷貝的解決方案,以確保 Vue 的反應性系統能正常運作並避免應用當機。
howler.js是一個強大的 JavaScript 音效庫,可以方便地在網頁上播放音效。 在 Vue.js 中使用 Howler.js 可以輕鬆地管理和播放音效。
如何在 Vite 專案中安裝和設置 TypeScript 及路徑別名的步驟,包括安裝必要的依賴、配置 vite.config.js、tsconfig.json 的設置,及如何創建類型聲明文件來正確識別 .vue 文件。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
這些章節的目的是為了介紹JavaScript中的各種數據類型,包括基礎類型和物件類型,以及如何將數據從一種類型轉換為另一種類型。此外,還介紹了如何創建自定義類型,以及如何使用JavaScript中的陣列、集合和字典。
Thumbnail
JavaScript是一種具有動態型別、弱型別、原型繼承等特性的高級腳本語言,應用範圍廣泛,包括前端開發、後端開發、移動應用等。它被各種公司和開源社區廣泛使用。學習JavaScript需要掌握ECMAScript標準、異步編程、模塊系統等知識。
Thumbnail
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
※ 好用的陣列迭代器:forEach forEach 的使用時機: 需要從頭到尾把陣列中的每一個元素都印出來 ,就適合使用 forEach 方法。 forEach 的必要參數是一個函式: forEach() 的功能是把陣列的每個元素都丟進某個函式執行一次,因此必要的參數是一個函式。 語法:
※ 函式基礎介紹: ※ JavaScript 特殊的函式特性: 函式可以當成值來傳遞 (可以放進變數或放進物件) 函式可以當成函式的參數 callback - 在特定事件中觸發函式 (非同步特性) ※ 函式的基本寫法: ※ 調用 (invoke) 函式: "調用" 意指呼叫或執行
※ switch用法: ​switch是 JavaScript 中的一個控制結構,是一種更結構化的方法來替代多個 if...else 語句,特別是當需要根據同一變數的多個值進行不同操作時非常有用。 ※ switch語法: switch 語句首先評估括號內的表達式 (expression)。
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
Thumbnail
本文將介紹 JavaScript 中的字符串基本操作,包括連接、長度和切割,以及進階的搜索、替換和正則表達式操作,讓你瞭解如何有效地處理和操作字符串。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
這篇內容,將會講解什麼是陣列,以及與陣列相關的知識。包括陣列的簡介、陣列的資料限制、陣列的維度、一維陣列、二維陣列。
Thumbnail
這些章節的目的是為了介紹JavaScript中的各種數據類型,包括基礎類型和物件類型,以及如何將數據從一種類型轉換為另一種類型。此外,還介紹了如何創建自定義類型,以及如何使用JavaScript中的陣列、集合和字典。
Thumbnail
JavaScript是一種具有動態型別、弱型別、原型繼承等特性的高級腳本語言,應用範圍廣泛,包括前端開發、後端開發、移動應用等。它被各種公司和開源社區廣泛使用。學習JavaScript需要掌握ECMAScript標準、異步編程、模塊系統等知識。
Thumbnail
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
※ 好用的陣列迭代器:forEach forEach 的使用時機: 需要從頭到尾把陣列中的每一個元素都印出來 ,就適合使用 forEach 方法。 forEach 的必要參數是一個函式: forEach() 的功能是把陣列的每個元素都丟進某個函式執行一次,因此必要的參數是一個函式。 語法:
※ 函式基礎介紹: ※ JavaScript 特殊的函式特性: 函式可以當成值來傳遞 (可以放進變數或放進物件) 函式可以當成函式的參數 callback - 在特定事件中觸發函式 (非同步特性) ※ 函式的基本寫法: ※ 調用 (invoke) 函式: "調用" 意指呼叫或執行
※ switch用法: ​switch是 JavaScript 中的一個控制結構,是一種更結構化的方法來替代多個 if...else 語句,特別是當需要根據同一變數的多個值進行不同操作時非常有用。 ※ switch語法: switch 語句首先評估括號內的表達式 (expression)。
Thumbnail
題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
Thumbnail
本文將介紹 JavaScript 中的字符串基本操作,包括連接、長度和切割,以及進階的搜索、替換和正則表達式操作,讓你瞭解如何有效地處理和操作字符串。