JavaScript - 满足条件时从数组中删除对象

时间:2017-05-10 19:23:04

标签: javascript arrays

我有以下数组:

  var arr = [{"userId":"12j219","name":"Harry"},{"userId":"232j32", "name":"Nancy"}]

我想在满足以下条件时删除整个对象:

userId == 12j219

为此,我做了以下事情:

arr.filter((user)=>{
    if(user.userId != "12j219"){
    return user;
    }
    })

它完成了这项工作,但肯定不会删除任何内容。 如何从数组中删除对象?

3 个答案:

答案 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";
});