JavaScript의 배열 반복에 "for...in"을 사용하지 마세요
JavaScript의 "for...in" 루프에는 잠재적인 함정이 있습니다. 배열을 반복할 때. 적절한 접근 방식인 것처럼 보이지만 예상치 못한 결과가 발생할 수 있습니다.
왜 나쁜 생각인지
"for...in" 루프는 속성을 반복합니다. , 배열에 직접 정의되지 않은 항목도 포함됩니다. 여기에는 배열의 프로토타입에서 상속되거나 동적으로 추가된 속성이 포함됩니다.
예를 들어 다음 코드를 고려해 보세요.
var a = []; // Empty array a[5] = 5; // Resize the array
빈 배열을 생성하더라도 다섯 번째 인덱스에 값을 할당하면 효과적으로 크기가 조정됩니다.
다음을 사용하여 반복하는 경우 "for...in":
for (var i in a) { console.log(a[i]); }
루프는 다음 속성을 반복합니다:
그러나 잠재적으로 배열 데이터와 관련이 없을 수 있는 상속된 속성이나 배열 개체에 추가된 기타 속성을 반복합니다.
대신 숫자 루프를 사용하세요
반복하려면 특히 배열에 대해서는 숫자 루프를 사용합니다.
for (var i = 0; i < a.length; i++) { console.log(a[i]); }
이 루프는 배열의 숫자 인덱스를 명시적으로 반복하여 다음을 보장합니다. 예상된 값만 액세스됩니다.
위 내용은 JavaScript에서 배열 반복을 위해 'for...in' 루프를 사용하지 말아야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!