|
|
|
|
|
by giantDinosaur
1952 days ago
|
|
Here you go: Array.prototype.map = function (func) {
if (func.length !== 3) {
throw new Error(
"bad! this function you've passed must take THREE arguments. Grr!"
);
}
for (let i = 0; i < this.length; i++) {
this[i] = func(this[i], i, this);
}
return this;
};
;)(making this workable and bug free is left to the reader or multi-billion dollar corporations) There can be a non-indexed map as well. I'm most curious as to who uses the last argument in the JS map function! |
|
It's convenient for some things that would otherwise require a reduce (but where reduce isn't particularly more efficient, because you just need lookahead/lookbehind) or an imperative loop, like transforming a list to a set of moving averages over the list.
It's a little more expressive than reduce our imperative lots loops in those cases, too.