简体   繁体   English

通过其索引删除数组对象

[英]remove array object by its index

I'm trying to remove an array object from an array. 我正在尝试从数组中删除数组对象。 First, I loop to the array of objects and if that array match to the given filter, then remove that object. 首先,我循环到对象数组,如果该数组与给定的过滤器匹配,则删除该对象。 Below is what I've tried but unfortunately not working, any help, ideas, clues, suggestions, recommendations please? 以下是我尝试过的方法,但是很遗憾,该方法不起作用,请提供任何帮助,想法,线索,建议,建议吗?

 $(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. You need to use Array#splice and not Array#slice to remove element from array. 您需要使用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. You can use Array#filter to remove an element from array. 您可以使用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); 

You can use delete . 您可以使用delete

Here is the reference to it, this is exactly what you looking for. 是对它的引用,这正是您要寻找的。

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

The delete operator removes a property from an object. 删除运算符从对象中删除属性。

this may help you n_array.slice(i); 这可以帮助您n_array.slice(i); replace this with n_array.splice(i, 1); 替换为n_array.splice(i,1);

slice() method is used to select the elements from array slice()方法用于从数组中选择元素

Problem with yours code is splice syntax 您的代码有问题是拼接语法

splice syntax is: array.splice(index,howmany element going to delete,value_item1,.....,value_itemX); 拼接的语法是:array.splice(index,要删除的多个元素,value_item1,.....,value_itemX);

In urs code you are using n_array.splice(i,0) ; 在我们的代码中,您正在使用n_array.splice(i,0) ; so you are giving 0 element to delete. 因此您要删除0个元素。

Make it Like 使它像

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);

Hope it will help 希望对你有帮助

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

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