2015-09-07 20 views
7

Ich habe ein Array, und ich möchte einen Datensatz aus ihm entfernen Ich habe Array.filter() verwenden, aber es gibt dasselbe Array wie es ist.Array.filter funktioniert nicht richtig

Mein Code:

var url = window.location.pathname, 
    orderId = url.split('/').slice(-2)[0]; 
var Cart = JSON.parse(localStorage.getItem('Cart')); 
newCart=Cart.filter(function(item) { 
    if (parseInt(item.orderId) == parseInt(orderId)) { 
     return {}; 
    } 
    else 
    { 
     return item; 
    } 
}); 
localStorage.setItem('Cart',JSON.stringify(newCart)); 
+1

der Rückkehr aus der Funktion in Array.filter sollte wahr oder falsch sein, um wahr zu „halten“, um das Element in der Ausgangsanordnung, falsch zu „überspringen“ es - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter –

Antwort

12

Sie benötigen true oder false in Filter zurückzukehren, um Daten aus einem Array zu filtern, true zurück, um das Element zu halten, andernfalls false. So können Sie etwas tun mit filter()

newCart = Cart.filter(function(item) { 
    return parseInt(item.orderId, 10) != parseInt(orderId, 10); 
});