On Wed, Nov 21, 2018 at 7:23 AM Isiah Meadows
<isiahmead...@gmail.com> wrote:
>
> It doesn't work as well with larger collections.

For example, fails at somewhere between an array of length 125,000 and
126,000 on V8 in Chrome v70 (as does the `apply` trick, so the proposed
polyfill would have the same problem): http://jsfiddle.net/xoLe5mg7/ Using
spread (it's not rest) also means that it would have to go through an
iterator, which if the iterable is known to be an array is a lot of extra
overhead (but also makes it more generally useful, so, swings and
roundabouts).

@Gbadebo Bello - What makes `reduce` not suitable to your use cases?
Example:

```js
function findMin(array) {
    return array.reduce((a, b) => a < b ? a : b);
}
```

or if you want the type check:

```js
function findMin(array) {
    return array.reduce((a, b) => {
        if (typeof a !== "number" || typeof b !== "number") {
            throw new Error("The array must contain only numbers");
        }
        return a < b ? a : b;
    });
}
```

(both off-the-cuff, apologies if there are any minor errors; the overall
point should be clear regardless.)

If the callback becomes important from a performance perspective, I'd
expect it to get aggressively optimized.

-- T.J. Crowder
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to