一、使用 Array.filter()
const arr = [1, 2, 3, 4, 5]; const result = arr.filter(item => item !== 3); console.log(result); // [1, 2, 4, 5]
使用 Array.filter() 可以方便的刪除數組中指定元素,該方法傳入一個回調函數,返回一個新的數組,新數組中只包含回調函數返回 true 的元素。以上面的數組為例,當回調函數返回 true 時,該元素會被添加到新數組中,反之則不會。因此回調函數中刪除元素的邏輯便是當元素不等於指定元素時返回 true。
該方法不會改變原數組的內容,而是返回新的數組,因此也適用於功能上需要保留原數組的場景。
二、使用 Array.splice()
let arr = [1, 2, 3, 4, 5]; arr.splice(2, 1); console.log(arr); // [1, 2, 4, 5]
Array.splice() 可以用來刪除某個位置的元素。第一個參數表示要刪除元素的起始位置,第二個參數表示要刪除的元素個數。以上面的數組為例,當我們想刪除第三個元素時(下標從 0 開始計數),則傳入 2(第三個元素在數組中的位置),傳入 1(只刪除一個元素)。
該方法會改變原數組的內容,因此需要謹慎使用。
三、使用 Array.pop() 和 Array.shift()
let arr = [1, 2, 3, 4, 5]; arr.pop(); console.log(arr); // [1, 2, 3, 4] arr.shift(); console.log(arr); // [2, 3, 4]
Array.pop() 用於刪除數組末尾的元素,相當於刪除最後一個元素。該方法沒有參數,返回被刪除的元素。
Array.shift() 用於刪除數組開頭的元素,相當於刪除第一個元素。該方法沒有參數,返回被刪除的元素。
這兩種刪除方式,因為會改變數組的長度,所以需要注意循環遍歷的問題或者在每次刪除後重新獲取數組長度。
四、使用 Object.assign()
let arr = [1, 2, 3, 4, 5]; const indexToDelete = 2; const result = Object.assign([], arr.slice(0, indexToDelete), arr.slice(indexToDelete + 1)); console.log(result); // [1, 2, 4, 5]
使用 Object.assign() 可以實現類似複製對象的功能。以上面的數組為例,我們可以使用 slice() 方法獲取指定位置之前和之後的數組,然後使用 Object.assign() 將兩個數組組合成一個新數組。該方法會返回一個新數組,不會改變原數組的內容。
總結
以上是幾種常見的刪除 JavaScript 數組元素的方法。根據實際場景選擇不同的方法可以帶來更好的性能和代碼可讀性。其中使用 Array.filter() 和 Object.assign() 方法可以實現不改變原數組內容,適用於需要保留原數組的情況。而使用 Array.splice()、Array.pop() 和 Array.shift() 方法則會改變原數組內容,需要注意遍歷和數組長度的問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/250675.html