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