Hacker News new | ask | show | jobs
by jrimbault 2577 days ago
That's also my minor nitpick, I feel like the syntax : `list.filter(myFilter).map(transform)` is clear about what I do and, each functions has a clear goal.

Otherwise I enjoyed reading this.

1 comments

While your example reads a bit better, you’re now iterating through your list twice.
Most code isn't performance-critical.

This pattern will probably be dominated by the time taken to filter and map, not loop iteration.

Does JavaScript have adapters to covert lists into generators or lazy iterators?
Unfortunately not in a way that can optimize these methods. This is one reason the Java Streams API, which has a similar purpose (e.g. map, filter, flatMap, reduce, etc.), is a better design IMO because you can chain together method calls without creating (and iterating) the full array at each step.
Technically there is no iteration in filter/map/reduce at all.
That's incorrect. All of those functions are implemented using iteration.

Consider this excerpt from the .map() polyfill on MDN:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...

    // 7. Let k be 0
    k = 0;

    // 8. Repeat, while k < len
    while (k < len) {
      // [loop body omitted]

      // d. Increase k by 1.
      k++;
    }