JavaScript: Takes a function as an argument, then makes the first argument the last
JavaScript fundamental (ES6 Syntax): Exercise-232 with Solution
Move First Argument Last
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:
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.
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://www.w3resource.com/javascript-exercises/fundamental/javascript-fundamental-exercise-232.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics