w3resource

JavaScript: Takes a function as an argument, then makes the first argument the last

JavaScript fundamental (ES6 Syntax): Exercise-232 with Solution

Write a JavaScript program that takes a function as an argument, then makes the first argument the last.

  • Use argument destructuring and a closure with variadic arguments.
  • Splice the first argument, using the spread operator (...), to make it the last before applying the rest.

Sample Solution:

JavaScript Code:

// Define a function 'flip' that takes a function 'fn' as input and returns a new function that flips the first two arguments before calling 'fn'
const flip = fn => (first, ...rest) => fn(...rest, first);

// Initialize objects 'a' and 'b'
let a = { name: 'John Smith' };
let b = {};

// Define a function 'mergeFrom' using 'flip' and 'Object.assign' that merges the properties of the second object into the first object
const mergeFrom = flip(Object.assign);

// Bind 'mergeFrom' to 'a' to create a new function 'mergePerson' that merges properties from 'a' into another object
let mergePerson = mergeFrom.bind(null, a);

// Merge properties from 'a' into 'b' using the 'mergePerson' function
mergePerson(b); // == b

// Reinitialize object 'b'
b = {};

// Log the result of merging properties from 'a' into 'b' using 'Object.assign'
console.log(Object.assign(b, a)); // == b

Output:

{"name":"John Smith"}

Flowchart:

flowchart: Takes a function as an argument, then makes the first argument the last.

Live Demo:

See the Pen javascript-basic-exercise-232-1 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript program to iterate over all own properties of an object in reverse, running a callback for each one.
Next: Write a JavaScript program to flatten an object with the paths for keys.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/javascript-exercises/fundamental/javascript-fundamental-exercise-232.php