I am trying to code to the function arrToObj to achieve the desired console logs. arrToObj should return an object that has elements from the passed-in array as keys, and the outputs from the callback (when those elements are passed in) as the corresponding values.
Here is the code I am given...
function arrToObj(array, callback) {
// ADD CODE HERE
}
// Uncomment these to check your work!
const arrOfStrings = ['beer', 'glue'];
const capitalize = str => str.toUpperCase();
console.log(arrToObj(arrToObj(arrOfStrings, capitalize)); // should log: { beer: 'BEER', glue: 'GLUE' }
I'm not sure where to start. Hints or solutions are both welcome. Thank you for your time!
You can just use reduce
function arrToObj(array, callback) {
return array.reduce((acc, next) => {
return {
...acc,
[next]: callback(next),
};
}, {})
}
// Uncomment these to check your work!
const arrOfStrings = ['beer', 'glue'];
const capitalize = str => str.toUpperCase();
console.log(arrToObj(arrOfStrings, capitalize)); // should log: { beer: 'BEER', glue: 'GLUE' }