使用javascript从数组中删除对象?

时间:2013-04-22 00:35:49

标签: javascript

如何通过id从数组中删除对象,例如:

users = [{id: "10051", name: "Mike Coder"},{id: "4567", name: "Jhon Second"}]

假设我要使用javascript删除ID为“10051”的用户,我尝试在网上搜索但找不到任何内容?

加上我不想使用下划线!

4 个答案:

答案 0 :(得分:4)

  

加上我不想使用下划线!

本机方法是.filter()

var removeId = "4567";
users = users.filter(function (user) { return user.id !== removeId; });

请注意,它需要引擎为ES5-compatible(或polyfill)。

答案 1 :(得分:2)

for (var i = 0; i < users.length; ++i)
{
    if ( users[i].id == "10051" )
    {
        users[i].splice(i--, 1);
    }
}

答案 2 :(得分:2)

您可以使用.filter数组方法。

users = users.filter(function(el) {return el.id !== '10051'});

答案 3 :(得分:1)

var users= [{id:"10051", name:"Mike Coder"},{id:"4567", name:"Jhon Second"}];

/* users.length= 2 */

function removebyProperty(prop, val, multiple){
    for(var i= 0, L= this.length;i<L;i++){
        if(i in this && this[i][prop]=== val){
            this.splice(i, 1);
            if(!multiple) i= L;
        }
    }
    return this.length;
}

<强> removebyProperty.call(用户, 'ID', “10051”);

返回值:(数字)1