Я хочу:
Создайте функцию saveOutput, которая принимает функцию (которая будет принимать один аргумент) и строку (которая будет действовать как пароль). Затем saveOutput возвращает функцию, которая ведет себя точно так же, как переданная функция, за исключением случаев, когда строка пароля передается в качестве аргумента. Когда это происходит, возвращаемая функция возвращает объект со всеми ранее переданными аргументами в качестве ключей, а соответствующие выходные данные в виде значений
Я попробовал следующий код ниже:
const saveOutput = (inputFunc, str) => {
let newObj = {};
return function (value) {
if (value === str){
return newObj[value] = inputFunc(value)
}
// return a function that behaves exactly like the passed-in function
else {
return inputFunc(value)
}
}
}
// Uncomment these to check your work!
const multiplyBy2 = function(num) { return num * 2; };
const multBy2AndLog = saveOutput(multiplyBy2, 'boo');
console.log(multBy2AndLog(2)); // should log: 4
console.log(multBy2AndLog(9)); // should log: 18
console.log(multBy2AndLog('boo')); // should log: { 2: 4, 9: 18 }
Мой код возвращает:
console.log(multBy2AndLog(2)); // returns 4
console.log(multBy2AndLog(9)); // returns 18
console.log(multBy2AndLog('boo')); // returns NaN
Почему мой третий и последний файл console.log возвращает NaN, если он должен вернуть:
{ 2: 4, 9: 18 }