Map oder Filter auf Iterator Objekten

Laut MDN gibt die Funktion Map#keys() ein Iterator zurück. Mit Hilfe der Funktion Array#from können wir daraus ein Array machen welches die Funktionen filter, map etc. hat.

Wenn man aber nicht Array#from benutzen möchte, kann man hier für auch einfach Hilfsmethoden implementieren, die von einem Iterator gebrauch machen. Im Folgenden zeige ich euch für filter und map eine Beispiel Implementierung für zuvor genanntes Problem.

function* map<T>(iterable: IterableIterator<T>, transform: (item: T) => void) {
    for (var item of iterable) {
        yield transform(item);
    }
}

function* filter<T>(iterable: IterableIterator<T>, predicate: (item: T) => boolean) {
    for (var item of iterable) {
        if (predicate(item)) {
            yield item;
        }
    }
}

Den Code findet ihr auch auf TypeScript Playground. Hier entlang!

1210cookie-checkMap oder Filter auf Iterator Objekten

Kommentar verfassen