Tôi đã tự hỏi làm thế nào tôi muốn đi về việc thực hiện một phương pháp trong javascript mà loại bỏ tất cả các yếu tố của một mảng rõ ràng một điều kiện nhất định. (Tốt hơn là không sử dụng jQuery)javascript - loại bỏ phần tử mảng trên điều kiện
Ví dụ:
ar = [ 1, 2, 3, 4 ];
ar.removeIf(function(item, idx) {
return item > 3;
});
Ở trên sẽ đi qua từng mục trong mảng và loại bỏ tất cả các mục trong số đó return true
cho điều kiện (trong ví dụ, mục> 3).
Tôi chỉ mới bắt đầu bằng javascript và tự hỏi liệu có ai biết một cách hiệu quả ngắn để thực hiện việc này hay không.
- cập nhật -
Nó cũng sẽ là tuyệt vời nếu tình trạng này có thể làm việc trên các thuộc tính đối tượng là tốt.
Ví dụ:
ar = [ {num:1, str:"a"}, {num:2, str:"b"}, {num:3, str:"c"} ];
ar.removeIf(function(item, idx) {
return item.str == "c";
});
Trường hợp mục sẽ được loại bỏ nếu item.str == "c"
- Update2 -
Nó sẽ được tốt đẹp nếu điều kiện chỉ số có thể làm việc là tốt.
Ví dụ:
ar = [ {num:1, str:"a"}, {num:2, str:"b"}, {num:3, str:"c"} ];
ar.removeIf(function(item, idx) {
return idx == 2;
});
http://jsfiddle.net/n8JEy/3/ Những công việc này. – pickypg
Cảm ơn, hoạt động tuyệt vời. Tôi thích cách này sẽ xem xét các chỉ số thay đổi thông qua nối trong quá trình lặp. – dk123
Đó là một chút lộn xộn. Hãy thử http://jsfiddle.net/n8JEy/4/ - và bạn đã không chuyển 'i' đến hàm gọi lại làm tham số thứ hai – Ian