2013-10-24 5 views
0

에서 문자열 루프에서 내가 자바 스크립트에서 비교적 새로운 오전 나는이처럼 루프 이상한 발견 :에 대한/자바 스크립트

for (c in "test message") { 
} 

일반적으로이 같은은 foreach 루프이며, 'C '요소는 문자 (t, e, s, t 등)를 반복해야합니다. ...이 하나가 정수를 반복합니다 ...?!

동작을 이해할 수있는 문서가 있습니까?

완전한 샘플은 다음과

<!DOCTYPE html> 
<html> 
<body> 
    <p>Click the button to loop through the 
     properties of an object named "person".</p> 
    <button onclick="myFunction()">Try it</button> 
    <p id="demo"></p> 

    <script> 
     function myFunction() { 
      var x; 
      var txt = ""; 
      var person = { fname: "John", lname: "Doe", age: 25 }; 
      var myString = "this is a test"; 

      for (x in myString) { 
       txt = txt + x + ':' + myString[x] + '<br/>'; 
      } 

      for (x in person) { 
       txt = txt + x + ':' + person[x] + '<br/>'; 
      } 
      document.getElementById("demo").innerHTML = txt; 
     } 
    </script> 
</body> 
</html> 

출력 :

따라서
for (var key in objectOrArray) { 
    console.log(key, objectOrArray[key]); 
} 

가 항상 키를 출력하고 상기 인이 방식으로 작동 for..in 자바 스크립트

0:t 
1:h 
2:i 
3:s 
4: 
5:i 
6:s 
7: 
8:a 
9: 
10:t 
11:e 
12:s 
13:t 
fname:John 
lname:Doe 
age:25 
+0

이 루프를 사용하여 문자열 값을 분할합니다. 루프의 시작, 끝, 단계를 지정할 필요가 없다는 점을 제외하고는 for 루프와 정확히 똑같습니다. – NDraskovic

+0

@NDraskovic 질문은 "키"가 정수가 된 방법입니다 ... 어떻게 작동합니까? – Serge

답변

0

문자열을 반복 할 때 문자 인덱스 (0 기준).

또한과 같이 문자열에서 같은 동작을 사용할 수 있습니다, JSON 객체 작동 for..in을

console.log(str[5]); //the 6th character in the string "str" 
+0

그래서 배열 (문자열, 정수 또는 객체 배열 포함)에서 "키"는 항상 정수입니까? – Serge

+0

@ Serge 기본 규칙은 당신이 던지는 객체의 키를 반환한다는 것입니다. 'variable [ "key"]'를 사용할 수 있으면 "key"를 출력하고, variable [0]을 사용할 수 있다면 "0"을 출력합니다. 둘 중 하나를 사용할 수 없으면 실패합니다. – h2ooooooo

0

가 'X'객체의 요소를 나타냅니다. 모든 요소에 대한 작업을 수행 - 은 (문자열 귀하의 경우 문자의 배열을) 트로프 주어진 배열의 모든 요소를 ​​이동하면 정상 for..loop

for (var x = 0; x < myString.length;x++) 
{ 
txt = txt + x.toString() + ':' + myString[x] + '<br/>'; 
} 
관련 문제