ES2015'in Reflect.ownKeys(obj)
özelliklerini bir yineleyici aracılığıyla kullanımını ve ayrıca yinelemeyi eklemek için .
Örneğin:
let obj = { a: 'Carrot', b: 'Potato', Car: { doors: 4 } };
tarafından tekrarlanabilir
// logs each key
Reflect.ownKeys(obj).forEach(key => console.log(key));
Bir nesnenin anahtarlarının değerleri üzerinde doğrudan yineleme yapmak isterseniz, iterator
tıpkı JavaScipts'in dizeler, diziler, yazılan diziler, Harita ve Küme için varsayılan yineleyicileri gibi .
JS, olarak tanımlanması gereken varsayılan yineleyici özelliği üzerinden yineleme yapmaya çalışır Symbol.iterator
.
Tüm nesneler üzerinde yineleme yapabilmek istiyorsanız, nesneyi prototip olarak ekleyebilirsiniz:
Object.prototype[Symbol.iterator] = function*() {
for(p of Reflect.ownKeys(this)){ yield this[p]; }
}
Bu, for ... döngüsüne sahip bir nesnenin değerlerini yinelemenize olanak tanır, örneğin:
for(val of obj) { console.log('Value is:' + val ) }
Dikkat : Bu yanıtı yazarken (Haziran 2018) IE hariç tüm diğer tarayıcılar, jeneratörleri ve for...of
yinelemeyiSymbol.iterator
if (typeof(obj[propt]) === 'object') {
/ * Tekrar yap * /}