2015-09-07 14 views
7

配列があり、レコードを削除したいのですが、使用するのはArray.filter()ですが、同じ配列が返されます。Array.filterが正常に動作していません

マイコード:

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内の関数からの戻りを使用して、このような何かを行うことができますit - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter –

答えて

12

あなたがそうでない場合はfalse、要素を維持するためには、trueを返し、配列からデータをフィルタリングするためにフィルタでtrueまたはfalseを返却する必要があります。だから、「スキップ」するために偽の、出力配列内のアイテムを「維持」するために、真または偽、真でなければなりませんfilter()

newCart = Cart.filter(function(item) { 
    return parseInt(item.orderId, 10) != parseInt(orderId, 10); 
}); 
関連する問題