반복문 for in문을 배우는 중 array와 object를 사용했을 때 결과값이 이해가 안간다.
for in문에서 array를 사용한 경우,
let arr = [3, 4, 5];
for (let i in arr) { // 위와 같은 동작을 하는 for / in 문
document.write(i + " ");
}
document.write("<br>"); // 결과는 0 1 2
변수로 사용된 i는 arr 배열의 내용이 아닌 순서를 출력한다.
그런데, for in문에서 object 배열을 사용한 경우,
var obj = {
name : "이순신",
age : 20
};
for (var i in obj) {
document.write(i + " ");
}
// 결과는 name age
변수로 사용된 i는 obj 배열의 key값을 출력한다.
Q. 왜 for in 문에서 사용된 변수는 array 배열에서는 순서를, object 배열에서는 key 값을 출력하는 것일까?
A : array도 사실 key값을 불러낸것이다.
console로 array의 구조를 살펴보면,
let arr = [3, 4, 5];
console.dir(arr);
/*
출력 결과
(3) [3, 4, 5]
0: 3
1: 4
2: 5
length: 3
*/
console에는 위의 구조로 출력된다.
즉, array는 index가 key값처럼 사용되며, index 값이 생략됐다.
'Coding > JavaScript+jQuery' 카테고리의 다른 글
[Javascript - note] function (ES6) (0) | 2022.01.27 |
---|---|
[jQuery/Javascript] 버튼으로 diplay 바꾸기 (0) | 2021.06.03 |
[Javascript - Q] Vanilla Javascript는 동일 class를 다중 선택하는 것이 불가능한가? (0) | 2021.05.29 |