2015-09-07 23 views
7

Tôi có một mảng và tôi muốn xóa bản ghi khỏi nó, tôi đã sử dụng Array.filter() nhưng mảng cùng trả về của nó giống như nó.Array.filter không hoạt động bình thường

Mã của tôi:

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

sự trở lại từ các chức năng trong array.filter nên đúng hay sai, đúng để "giữ" các mục trong mảng đầu ra, sai đến để "bỏ qua" nó - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter –

Trả lời

12

Bạn cần phải trả lại true hoặc false trong bộ lọc để lọc dữ liệu từ một mảng, Return đúng để giữ cho các phần tử, false. Vì vậy, bạn có thể làm một cái gì đó như thế này sử dụng filter()

newCart = Cart.filter(function(item) { 
    return parseInt(item.orderId, 10) != parseInt(orderId, 10); 
}); 
Các vấn đề liên quan