javascript — перебирать свойства объекта

Итерация по свойствам объекта

Чтобы добавить использование Reflect.ownKeys(obj) а также перебирать свойства через итератор.

Например:

 let obj = { a: 'Carrot', b: 'Potato', Car: { doors: 4 } }; 

может быть повторен

 // logs each key Reflect.ownKeys(obj).forEach(key ={amp}gt; console.log(key)); 

Если вы хотите выполнить итерацию непосредственно по значениям ключей объекта, вы можете определить iterator , так же как итераторы JavaScipts по умолчанию для строк, массивов, типизированных массивов, Map и Set.

JS попытается выполнить итерацию через свойство итератора по умолчанию, которое должно быть определено как Symbol.iterator .

Если вы хотите иметь возможность перебирать все объекты, вы можете добавить его в качестве прототипа Object:

 Object.prototype[Symbol.iterator] = function*() { for(p of Reflect.ownKeys(this)){ yield this[p]; } } 

Это позволит вам перебирать значения объекта с помощью цикла for …, например:

 for(val of obj) { console.log('Value is:'   val ) } 

Внимание : На момент написания этого ответа (июнь 2018 г.) все другие браузеры, кроме IE, поддерживают генераторы и for...of итерации через Symbol.iterator

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector