2015-07-11 26 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);