2015-07-11 53 views
0

我的代码在下面出现了什么问题?使用过滤器删除对象不起作用

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的对象将被删除?

+0

首先找到你要删除,然后使用方法Array.splice删除元素的元素的索引。 – Skywalker

+0

应该是'arr = arr.filter ...' – georg

回答

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);