Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript 배열 반복에서 "for...in" 루프를 사용하는 것이 나쁜 생각인 이유는 무엇입니까?


대부분의 경우 일반적으로 'for "for...in 대신 ' 루프 " 루프 때문에 "for...in " 루프 결과는 색인 일반적인 "for " 루프는 값을 표시하고 나머지 인덱스에는 'undefined'라는 값이 실행되어 개발자가 코드를 작성하는 동안 혼동하지 않도록 합니다.

구문-1

for (var x in array) {
// code
};

위 코드는 "for...in의 구문입니다. " 루프.

구문-2

for () {
// code
};

위의 구문은 일반적인 "for " 루프.

예시-1

다음 예에서 처음에는 배열 "num "는 5자리(0-4의 인덱스)만 있습니다. 인덱스 '4'에서 멀리 떨어진 다른 인덱스 7이 있을 때 배열에 추가되고 남은 인덱스(5 및 6)에 대해 알리지 않고 인덱스가 계속 실행되었습니다. 일반적인 "for의 경우는 그렇지 않습니다. " 루프. 이것은 개발자를 당황하게 할 수 있습니다.

<html>
<body>
<script>
   var num = [1,2,3,4,5];
   num[7] = 7;
   for (var x in num) {
      document.write(x);
      document.write("</br>");
   }
</script>
</body>
</html>

출력

0
1
2
3
4
7


예시-2

다음 예에서는 "for...in " 루프, 일반적인 "for " 루프 값이 인덱스 대신 표시되고 남은 인덱스에도 값이 정의되지 않음 표시됩니다. 개발자를 당황시키지 않도록 실행됩니다.

<html>
<body>
<script>
   var num = [1,2,3,4,5];
   num[7] = 7;
   for (var i = 0; i < num.length; i++) {
      document.write(num[i]);
      document.write("</br>");
   }
</script>
</body>
</html>

출력

1
2
3
4
5
undefined
undefined
7