mdn for in
[ for ... in ]
상속된 열거 가능한 속성들을 포함하여 객체에서 문자열로 키가
지정된 모든 열거 가능한 속성에 대해 반복합니다.
(Symbol로 키가 지정된 속성은 무시합니다.)
[ for...in이 ]
객체의 반복을 위해 만들어졌지만,
배열의 반복을 위해서는 추천되지 않고,
Array.prototype.forEach(), for...of가 이미 존재합니다.
그러면 for...in은 어떻게 사용하는 것이 좋을까요?
이것은 쉽게 //객체의 속성을 확인(콘솔이나 다른 방법으로 출력)
할 수 있기 때문에 실질적으로 디버깅을 위해 사용될 수 있습니다.
배열이 데이터의 저장에 있어서는 더 실용적이지만,
키-값 쌍이 선호되는 데이터의 경우(속성이 "key"의 역할을 함)
특정 값을 가진 키가 있는지 확인하려는 경우에 for...in을 사용할 수 있습니다.
[ for...in의 사용 ]
아래의 예는 열거 가능한 non-Symbol속성들을 반복해서 속성의 이름과 그 값을 기록합니다.
var obj = {a: 1, b: 2, c: 3};
for (const prop in obj) {
console.log(`obj.${prop} = ${obj[prop]}`);
}
// Output:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
mdn for of
[ for...of 명령문 ]
반복가능한 객체 ()에 대해서 반복하고
각 개별 속성값에 대해 실행되는 문이 있는
사용자 정의 반복 후크를 호출하는 루프를 생성합니다.
[구문]
for (variable of iterable) {
statement
}
variable : 각 반복에 서로 다른 속성값이 variable에 할당
iterlbe : 반복되는 열거가능(eunmerable)한 속성이 있는 객체
[예제]
let iterable = [10, 20, 30];
for (let value of iterable) {
console.log(value);
}
// 10
// 20
// 30