Answer
t.me/js_testОтвет:
[ 1, 2, 3, 'a', 'b', 'c' ]
Объяснение:
Генераторы можно делегировать другим генераторам с помощью конструкции yield*. В таком случае, сначала должен завершится генератор которому делегировали управление и только после этого основной генератор продолжит работу. Так же в примере можно заметить как генератор развёртывается в массив с помощью spread оператора, так можно делать потому что spread оператор использует итератор.
Код:
function* nums() {
for (const n of [1, 2, 3]) {
yield n;
}
}
function* chars() {
for (const c of ['a', 'b', 'c']) {
yield c;
}
}
function* pseudoRandStr() {
yield* nums();
yield* chars();
}
const arr = [...pseudoRandStr()];
console.log(arr);