Как «прокачать» объект, чтобы он был итерируемым?
Использовать один из Well-known Symbols, а именно
Symbol.iterator.
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.реф