我有以下数组:
var arr = [{"userId":"12j219","name":"Harry"},{"userId":"232j32", "name":"Nancy"}]
我想在满足以下条件时删除整个对象:
userId == 12j219
为此,我做了以下事情:
arr.filter((user)=>{
if(user.userId != "12j219"){
return user;
}
})
它完成了这项工作,但肯定不会删除任何内容。 如何从数组中删除对象?
答案 0 :(得分:4)
filter()返回一个新数组。来自文档:
返回值:包含通过测试的元素的新数组。
您需要将结果数组分配给arr
变量。
尝试:
var arr = [{"userId":"12j219","name":"Harry"},{"userId":"232j32", "name":"Nancy"}]
arr = arr.filter((user) => {
return user.userId !== '12j219'
})
答案 1 :(得分:1)
如果您在代码的不同位置对同一个数组有多个引用,则可以将其分配给自己。
arr = arr.filter(user => user.userId !== "12j219");
答案 2 :(得分:0)
基本上,数组过滤器对数组中的所有元素进行迭代,期望返回true或false。如果false,则删除该元素,如果为true,则保留该元素。
var newArr = arr.filter(function(el){
return el.userId != "12j219";
});