簡體   English   中英

使用可變屬性值從JavaScript數組中刪除對象

[英]Delete object from javascript array using variable property value

大家好,我是javascript的新手,希望我對此有一些幫助。 基本上,我想做的是從數組中刪除單個對象。 該數組包含這樣的對象: y = [{id:group}].

我想使用對象的ID(即第一列)刪除一個對象。

我嘗試過的是在數組中循環查找相應的id並將其刪除,但是這里的問題是第一列未標記為“ id”,第一列為id形式(例如123)。

任何幫助,將不勝感激。

y = [{123:1},{321:2},{234:3}]
id = 123;

  for (var i = 0; i < y.length; i++)
    if (y[i].id === id) {
      y.splice(i,1);
    }
//Does not work because the first column of the object is not named "id"

您可以使用filter而不是循環:

 var y = [{123:1},{321:2},{234:3}] var id = 123; y = y.filter((obj) => !obj.hasOwnProperty(id)); console.log(y); 

只需檢查該特定鍵:

for (var i = 0; i < y.length; i++)
  if (key in y[i]) {
    y.splice(i,1);
  }
}

我使用兩個參數(數組,對象的鍵)創建函數,使用數組內部的forEach方法檢查並比較給定的鍵(通過參數)與對象元素中存在的鍵。如果為true,則我使用splice()方法刪除包含鍵的對象:

 y = [{123:1},{321:2},{234:3}]; function deleteObj(arg,value){ arg.forEach(function(element){ var index=arg.indexOf(element); if(Object.keys(element)==value.toString()){ arg.splice(index,1); } }); } deleteObj(y,123); console.log(y); 

暫無
暫無

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

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