Untuk menambahkan penggunaan ES2015 Reflect.ownKeys(obj)dan juga mengulangi properti melalui iterator.
Sebagai contoh:
let obj = { a: 'Carrot', b: 'Potato', Car: { doors: 4 } };
dapat diulangi oleh
// logs each key
Reflect.ownKeys(obj).forEach(key => console.log(key));
Jika Anda ingin beralih langsung ke nilai-nilai kunci suatu objek, Anda dapat mendefinisikan iterator, seperti halnya iterator default JavaScipts untuk string, array, array yang diketik, Map dan Set.
JS akan mencoba untuk beralih melalui properti iterator default, yang harus didefinisikan sebagai Symbol.iterator.
Jika Anda ingin dapat mengulangi semua objek, Anda dapat menambahkannya sebagai prototipe Obyek:
Object.prototype[Symbol.iterator] = function*() {
for(p of Reflect.ownKeys(this)){ yield this[p]; }
}
Ini akan memungkinkan Anda untuk mengulangi nilai-nilai suatu objek dengan for ... of loop, misalnya:
for(val of obj) { console.log('Value is:' + val ) }
Perhatian : Saat menulis jawaban ini (Juni 2018) semua browser lain, kecuali IE, mendukung generator dan for...ofiterasi melaluiSymbol.iterator
if (typeof(obj[propt]) === 'object') {/ * Lakukan lagi * /}