1

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

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

假设我想使用 javascript 删除 ID 为“10051”的用户,我尝试搜索互联网但找不到任何东西?

加上我不想使用下划线!

4

4 回答 4

4

加上我不想使用下划线!

本机方法是.filter()

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

请注意,它要求引擎与ES5 兼容(或polyfill)。

于 2013-04-22T00:40:20.500 回答
2
for (var i = 0; i < users.length; ++i)
{
    if ( users[i].id == "10051" )
    {
        users[i].splice(i--, 1);
    }
}
于 2013-04-22T00:36:55.057 回答
2

你可以使用.filter数组的方法。

users = users.filter(function(el) {return el.id !== '10051'});
于 2013-04-22T00:40:26.667 回答
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(users,'id',"10051");

返回值:(数字)1

于 2013-04-22T00:49:04.543 回答