
Как «прокачать» объект, чтобы он был итерируемым?
Как «прокачать» объект, чтобы он был итерируемым?
Использовать один из Well-known Symbols, а именно Symbol.iterator
.
const obj = { a: 1, b: 2, c: 3 };
obj[Symbol.iterator] = function* () { for (const key of Object.keys(this)) { yield [key, this[key]]; }};
for (const [key, value] of obj) { console.log(`${key}: ${value}`);}
Также есть вариант для асинхронного итерирования посредством Symbol.asyncIterator
.