From c8d0cfc493432c317649fbbfa0aae4535854a706 Mon Sep 17 00:00:00 2001 From: David Sehnal <david.sehnal@gmail.com> Date: Fri, 10 Nov 2017 10:06:18 +0100 Subject: [PATCH] Iterator.forEach tweak --- src/mol-data/iterator.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mol-data/iterator.ts b/src/mol-data/iterator.ts index 106efa325..8d5713f1f 100644 --- a/src/mol-data/iterator.ts +++ b/src/mol-data/iterator.ts @@ -107,11 +107,11 @@ namespace Iterator { export function map<T, R>(base: Iterator<T>, f: (v: T) => R): Iterator<R> { return new MapIteratorImpl(base, f); } export function filter<T>(base: Iterator<T>, p: (v: T) => boolean): Iterator<T> { return new FilterIteratorImpl(base, p); } - // f can return non-undefined falsy value to stop the iteration. - export function forEach<T, Ctx>(it: Iterator<T>, f: (v: T, ctx: Ctx) => boolean | void, ctx: Ctx): Ctx { + // Iterate until first truthy value is returned. + export function forEach<T, Ctx>(it: Iterator<T>, f: (v: T, ctx: Ctx) => any, ctx: Ctx): Ctx { while (it.hasNext) { const c = f(it.move(), ctx); - if (typeof c !== 'undefined' && !c) return ctx; + if (c) return ctx; } return ctx; } -- GitLab