我正在尝试从数组中删除数组对象。首先,我循环到对象数组,如果该数组与给定的过滤器匹配,则删除该对象。以下是我尝试但不幸的是没有工作,有任何帮助,想法,线索,建议,建议吗?
$(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>
答案 0 :(得分:2)
您需要使用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);
&#13;
您可以使用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);
&#13;
答案 1 :(得分:2)
您可以使用delete
。
Here 是对它的引用,这正是您所寻找的。 p>
if (n_array[i].name === 'jason') {
delete n_array[i].name;
}
删除操作符从对象中删除属性。
答案 2 :(得分:0)
slice()方法用于从数组中选择元素
答案 3 :(得分:0)
您的代码问题是拼接语法
拼接语法是: array.splice(index,howmany element to delete,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);
希望它会有所帮助