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...of
iterasi melaluiSymbol.iterator
if (typeof(obj[propt]) === 'object') {
/ * Lakukan lagi * /}