2015-09-07 26 views
7

Mam tablicę i chcę usunąć z niej rekord, używam Array.filter(), ale zwracam tę samą tablicę, jaka jest.Array.filter nie działa poprawnie

mój kod:

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

powrocie z funkcji w array.filter powinny być prawdziwe lub fałszywe, prawdziwe „keep” element w tablicy wyjściowej, fałszywe do „skip” to - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter –

Odpowiedz

12

Trzeba powrócić true lub false filtr w celu filtrowania danych z tablicy, Zwraca true, aby utrzymać element, false w przeciwnym wypadku. Więc można zrobić coś takiego za pomocą filter()

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