Gotcha khi dùng vòng lặp for..in.. trong javascript
TIL
635
Javascript
269
White

Hieu Nguyen viết ngày 01/06/2016

Hôm nay khi mình gặp một bug khá lạ khi render data: ở cuối bảng được render, có một vài dòng trống, không liên quan gì đến data. Sau một hồi debug, mình tìm ra được lỗi nằm ở đây:

for (index in questions) {
  var question = questions[index];
  // some code here
}

Ở đây, sau khi kết thúc duyệt qua các phần tử trong mảng questions, vòng lặp vẫn tiếp tục chạy với giá trị diffequals. Trong các trường hợp đó, questions[index] trả về giá trị undefined chứ không báo lỗi, và thế là bug xuất hiện.

Mình vẫn chưa rõ vì sao lại có hiện tượng này, hiện tại cách fix là sử dụng vòng for bình thường:

for (i = 0, len = questions.length; i < len; i++) {
  var question = questions[i];
  // some code here
}
Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Hieu Nguyen

22 bài viết.
10 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
12 3
Khi làm việc với Ruby và Rails, có lẽ không ít lần các bạn đã gặp các tác vụ download file về server của mình. Ruby hỗ trợ nhiều công cụ download k...
Hieu Nguyen viết hơn 3 năm trước
12 3
White
12 4
Đối với những người đã từng xây dựng API server, chắc hẳn ai cũng đã từng hơn một lần đau đầu với việc lựa chọn thư viện JSON. Bài viết sau đây hi ...
Hieu Nguyen viết hơn 3 năm trước
12 4
White
11 0
Như đã nói trong (Link), mình sẽ chia sẻ tổng hợp kết quả của các benchmark mình đã dùng để so sánh tốc độ render JSON của các thư viện phổ biến hi...
Hieu Nguyen viết hơn 3 năm trước
11 0
Bài viết liên quan
White
0 2
fCC: Technical Documentation Page note So I have finished the HTML part of this exercise and I want to come here to lament about the lengthy HTML ...
HungHayHo viết 5 tháng trước
0 2
White
20 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết 2 năm trước
20 1
White
9 0
Có một tuyên ngôn cho chủ nghĩa tối giản trong ngành phần mềm. Link: http://minifesto.org/ Fight for Pareto's law, look for the 20% of effort th...
Cẩm Huỳnh viết 2 tháng trước
9 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
22 bài viết.
10 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!