簡體   English   中英

從數組中刪除具有javascript中相同值的對象

[英]remove object from array which have same values in javascript

我正在初始化帶有動態對象的數組,結果如下

var arr = [
    {id: "", name: "", quantity: 0},
    {id: "", name: "", quantity: 0},
    {id: "", name: "", quantity: 0},
    {id: "", name: "", quantity: 0}
];

現在我想從此數組中刪除任何對象,但找不到合適的解決方案。 有人可以幫我怎么做。

我想從此數組中刪除任何對象,但找不到合適的解決方案

您可以使用splice方法,它接受要刪除元素的index(start)以及deleteCount ,后者是要從起始索引中刪除的元素數

 var arr = [{ id: "1", name: "A", quantity: 1 }, { id: "2", name: "B", quantity: 2 }, { id: "3", name: "C", quantity: 3 }, { id: "4", name: "D", quantity: 4 } ]; arr.splice(1, 1) console.log(arr) 

首先,您必須知道要刪除哪個對象(例如,id = x的對象)

那么你可以使用這段代碼

arr = arr.filter(function(e){ return e.id != x });

伙計們非常感謝您的幫助。 我已找到解決此問題的方法,以下是我想要的。

這是設置初始值的數組。

var arr = [
    {id: "", name: "", quantity: 0},
    {id: "", name: "", quantity: 0},
    {id: "", name: "", quantity: 0},
    {id: "", name: "", quantity: 0}
];

II可以刪除任何這樣的對象:

arr.splice(arr[index], 1);

解決方案是過濾具有以下非空值的arr數組

 var arr = [
    {id: "", name: "", quantity: 0},
    {id: "", name: "", quantity: 0},
    {id: "", name: "", quantity: 0},
    {id: "", name: "", quantity: 0}
];

 arr = arr.filter((obj)=>obj.id!==''); // you can use any field to filter 
 arr = arr.filter((obj)=>obj.id!=='' || obj.name!=='');// multiple fields to filter

現在,您的arr變量將更新為帶有非空字段的新對象數組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM