Reverse generator

Arrays and collections / Iterators

function* reverse(data) {
    let current = data.length;
    while (current >= 1) {
        current -= 1;
        yield data[current];
    }
}

for (let c of reverse("string")) {
    console.log(c);
}
//printed g, n, i, r, t, s

for (let i of reverse([1, 2, 3])) {
    console.log(i);
}
//printed 3, 2, 1