2015-09-07 28 views
7

Bir dizim var ve ben bir kayıt kaldırmak istiyorum ben Array.filter() kullanıyorum ama onunla aynı dizi döndürün.Array.filter düzgün çalışmıyor

Benim Kod:

Bir diziden verileri filtrelemek için filtreden içinde true veya false dönmek gerekir
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

Array.filter içinde işlevinden dönüş kullanarak böyle bir şey yapabilir - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter –

cevap

12

, unsur aksi halde false tutmak için gerçek dönün. Yani "atlama" false, çıkış dizideki öğeyi "tutmak" için doğru veya yanlış, gerçek olmalıdır filter()

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