ES2015의 사용법을 추가하려면 Reflect.ownKeys(obj)
하고 반복자를 통해 속성을 반복합니다.
예를 들면 다음과 같습니다.
let obj = { a: 'Carrot', b: 'Potato', Car: { doors: 4 } };
에 의해 반복 될 수있다
// logs each key
Reflect.ownKeys(obj).forEach(key => console.log(key));
객체의 키 값을 직접 반복하려면 iterator
문자열, 배열, 유형 배열, Map 및 Set에 대한 JavaScipts의 기본 반복자와 마찬가지로을 .
JS는 기본 반복자 속성을 통해 반복을 시도하며 이는로 정의되어야합니다 Symbol.iterator
.
모든 객체를 반복하려면 Object의 프로토 타입으로 추가 할 수 있습니다.
Object.prototype[Symbol.iterator] = function*() {
for(p of Reflect.ownKeys(this)){ yield this[p]; }
}
이를 통해 for ... of 루프를 사용하여 객체의 값을 반복 할 수 있습니다. 예를 들면 다음과 같습니다.
for(val of obj) { console.log('Value is:' + val ) }
주의 :이 답변 (2018 년 6 월)을 작성할 때 IE를 제외한 다른 모든 브라우저는 생성기 for...of
를 통해 반복을 지원합니다.Symbol.iterator
if (typeof(obj[propt]) === 'object') {
/ * 다시해라 * /}