Hi!

However, when I want to write performance sensitive code, chaining these
functions is not a good approach.
const b = a.filter().map()

will require 2 traversals over the whole array, up to 2*N iterations (if
the filter passes all items).

Actually, the number of passes hardly matters. It's still linear
complexity. What makes this slow is the allocation of the unnecessary
temporary array.

I suggest adding a capability to streamline items to these functions.

We don't need streams, JavaScript already has iterators. What we do need
are proper helper functions for those - see the existing proposal at
<https://github.com/tc39/proposal-iterator-helpers>. You then can write

    const b = Array.from(a.values().filter(…).map(…))

or

    for (const x of a.values().filter(…).map(…))
        console.log(x);

kind regards,
 Bergi
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to