使用过滤器删除对象不起作用

时间:2015-07-11 08:56:00

标签: javascript jquery

我的代码在下面出了什么问题?

var arr = [{
    "key": 123,
        "player_data": {
        "id": 1

    }
}, {
    "key": 456,
        "player_data": {
        "id": 1

    }
}]

arr.filter(function (el) {
    return el.key != 123;
});

console.log(arr);

我希望删除带有键123的对象吗?

2 个答案:

答案 0 :(得分:0)

arr.filter()返回一个新数组,但不会更改原始数组。您正在记录未受影响的原件。尝试..

var arr = [{
    "key": 123,
        "player_data": {
        "id": 1

    }
}, {
    "key": 456,
        "player_data": {
        "id": 1

    }
}]

var foo = arr.filter(function (el) {
    return el.key !== 123;
});

console.log(foo);

答案 1 :(得分:0)

更新

arr.filter(function (el) {
    return el.key != 123;
});

arr = arr.filter(function (el) {
    return el.key != 123;
});

注意filter函数不会更改现有数组,而是返回一个新数组。

供参考 - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter