[英]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>
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);
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);
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.