Tôi có một mảng thưa thớt (chỉ số không liên tục) như thế này:Javascript lặp qua mảng thưa thớt
var testArray = { 0: "value1", 5: "value2", 10: "value3", 15: "value4" };
tôi chỉ đơn giản muốn lặp qua từng hạng mục, làm một số công cụ, và có khả năng phá vỡ dưới điều kiện nhất định.
Tôi khá mới với Javascript và tôi không tìm được cách thích hợp để làm điều đó. Dưới đây là những gì tôi đã thử:
Được xây dựng trong "for..in". Có vẻ như đây là not the correct way to iterate through an array
forEach từ ECMASCRIPT5. Điều này lặp đi lặp lại một cách chính xác, nhưng tôi không thể thoát khỏi vòng lặp.
_.each() từ Underscore.js. Cùng một kết quả như # 2.
$.each() từ JQuery. Với cái này tôi có thể phá vỡ bằng cách trả về false, nhưng nó sẽ không lặp lại chính xác. Đối với ví dụ trên, thay vì lặp lại ở 0, 5, 10, 15, nó sẽ lặp lại ở 0,1,2,3,4,5,6 ... mà rõ ràng không phải là những gì tôi mong đợi.
Vì vậy, câu hỏi của tôi là: Có một cách dễ dàng để lặp một mảng thưa thớt với khả năng để phá vỡ trong vòng lặp trong Javascript hoặc nó sẽ là tốt hơn để sử dụng một cấu trúc dữ liệu như một Hashtable? Nếu vậy, bất kỳ recommandation?
Cảm ơn!
nếu bạn xem qua liên kết mà bạn đã cung cấp ở điểm # 1, vòng lặp for..in tích hợp LÀ cách lặp qua thuộc tính đối tượng, đó là những gì bạn có – anson
Từ những gì tôi hiểu từ liên kết là một vấn đề có thể xảy ra nếu một thư viện thêm một thành viên vào Array.prototype. Sau đó, thành viên sẽ là một phần của vòng lặp "for..in". – Absolom
Ah ok, ví dụ của tôi không hợp lệ vì tôi đang sử dụng một Object và không phải là một Array. Vì vậy, bình luận của bạn là chính xác. – Absolom