繁体   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