Files
30-seconds-of-code/snippets/overArgs.md
Angelos Chalaris 1b2a9324ec Update overArgs.md
2020-01-13 10:05:49 +02:00

544 B

title, tags
title tags
overArgs function,intermediate

Creates a function that invokes the provided function with its arguments transformed.

Use Array.prototype.map() to apply transforms to args in combination with the spread operator (...) to pass the transformed arguments to fn.

const overArgs = (fn, transforms) => (...args) => fn(...args.map((val, i) => transforms[i](val)));
const square = n => n * n;
const double = n => n * 2;
const fn = overArgs((x, y) => [x, y], [square, double]);
fn(9, 3); // [81, 6]