首頁 > web前端 > js教程 > 主體

如何有效率地從 JavaScript 陣列中刪除物件?

Mary-Kate Olsen
發布: 2024-11-23 10:32:10
原創
869 人瀏覽過

How to Efficiently Remove Objects from JavaScript Arrays?

從 JavaScript 陣列中刪除物件

從陣列中刪除物件是 JavaScript 中的常見操作。有多種方法可以實現此目的,每種方法都有自己的優點和缺點。

非變異方法

  • Array.filter(): 建立一個僅包含透過指定測試的元素的新陣列。例如:
let someArray = [{name: "Kristian", lines: "2,5,10"},
                 {name: "John", lines: "1,19,26,96"}];

let noJohn = someArray.filter(el => el.name !== "John");
登入後複製
  • Array.find(): 傳回第一個符合元素,如果找不到匹配,則傳回未定義。使用它來檢索要刪除的特定物件。例如:
const kristian = someArray.find(el => el.name === "Kristian");
登入後複製

變異方法

  • Array.splice(): 從其中刪除一系列元素數組,從指定索引開始。例如:
someArray.splice(someArray.findIndex(el => el.name === "John"), 1);
登入後複製
  • Array.pop(): 從陣列中刪除最後一個元素。
  • Array.shift (): 刪除第一個元素array.
  • Array.length = newLength: 重新分配數組的長度,截斷任何多餘元素。

選擇最佳方法

從數組中刪除物件的最佳方法取決於您的具體情況需要:

  • 非變異方法建立新陣列且不影響原始陣列。如果您想保持原始數組完整,這是理想的選擇。
  • 變異方法直接改變原始陣列。這樣效率更高,但可能會導致不必要的修改。

附加說明

  • Array.findIndex(): 使用這是為了找到要刪除的物件的索引,因為splice() 和pop() 需要索引參數。
  • Array.filter(): 可用來透過在篩選函數中指定多個條件來一次刪除多個元素。

範例

以下程式碼使用filter()方法建立一個不包含名稱的物件的新陣列「克里斯蒂安」:

const someArray = [{name: "Kristian", lines: "2,5,10"},
                 {name: "John", lines: "1,19,26,96"}];

const noKristian = someArray.filter(el => el.name !== "Kristian");

console.log(noKristian);
// Output: [{name: "John", lines: "1,19,26,96"}]
登入後複製

以上是如何有效率地從 JavaScript 陣列中刪除物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板