Skip to content

Latest commit

 

History

History
23 lines (18 loc) · 708 Bytes

overArgs.md

File metadata and controls

23 lines (18 loc) · 708 Bytes
title tags
overArgs
function,intermediate

JS TODO

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]