繁体   English   中英

通过其索引删除数组对象

[英]remove array object by its index

我正在尝试从数组中删除数组对象。 首先,我循环到对象数组,如果该数组与给定的过滤器匹配,则删除该对象。 以下是我尝试过的方法,但是很遗憾,该方法不起作用,请提供任何帮助,想法,线索,建议,建议吗?

 $(document).ready(function(){ var n_array = [{ 'name' : 'jason', 'age' : '24'},{ 'name' : 'jason2', 'age' : '20'}]; console.log(n_array); for(var i = 0; i < n_array.length; i++){ if(n_array[i].name==='jason'){ n_array.splice(i,0); } } console.log(n_array); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

  1. 您需要使用Array#splice而不是Array#slice从数组中删除元素。

     n_array.splice(i, 1); 

 var n_array = [{ 'name': 'jason', 'age': '24' }, { 'name': 'jason2', 'age': '20' }]; for (var i = 0; i < n_array.length; i++) { if (n_array[i].name === 'jason') { n_array.splice(i, 1); } } console.log(n_array); 

  1. 您可以使用Array#filter从数组中删除元素。

     var n_array = [{ 'name': 'jason', 'age': '24' }, { 'name': 'jason2', 'age': '20' }]; n_array = n_array.filter(function(obj) { return obj.name !== 'jason'; }); console.log(n_array); 

 var n_array = [{ 'name': 'jason', 'age': '24' }, { 'name': 'jason2', 'age': '20' }]; n_array = n_array.filter(function(obj) { return obj.name !== 'jason'; }); console.log(n_array); 

您可以使用delete

是对它的引用,这正是您要寻找的。

if (n_array[i].name === 'jason') {
    delete n_array[i].name;
}

删除运算符从对象中删除属性。

这可以帮助您n_array.slice(i); 替换为n_array.splice(i,1);

slice()方法用于从数组中选择元素

您的代码有问题是拼接语法

拼接的语法是:array.splice(index,要删除的多个元素,value_item1,.....,value_itemX);

在我们的代码中,您正在使用n_array.splice(i,0) ; 因此您要删除0个元素。

使它像

var n_array = [{ 'name' : 'jason', 'age' : '24'},{ 'name' : 'jason2', 'age' : '20'}];

  console.log(n_array);

  for(var i = 0; i < n_array.length; i++){
   if(n_array[i].name==='jason2'){
     n_array.splice(i,1);
   }
  }
  console.log(n_array);

希望对你有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM