Моя цель заключается в следующем:
Создайте функцию multiMap, которая будет принимать два массива - массив значений и массив обратных вызовов. multiMap вернет объект, ключи которого соответствуют элементам в массиве значений. Соответствующие значения, которые назначены клавишам, будут массивами, состоящими из выходных данных из массива обратных вызовов, где входом для каждого обратного вызова является ключ.
Я попробовал код ниже:
const multiMap = (arrOne, arrTwo) => {
let newObj = {};
for (let i=0; i<arrOne.length; i++){
let element = arrOne[i];
console.log(i)
newObj[element] = arrTwo[i](element);
}
return newObj;
}
// Uncomment these to check your work!
function uppercaser(str) { return str.toUpperCase(); }
function capitalize(str) { return str[0].toUpperCase() + str.slice(1).toLowerCase(); }
function repeater(str) { return str + str; }
// arrOne
const items = ['catfood', 'glue', 'beer'];
// arrTwo
const functions = [uppercaser, capitalize, repeater];
console.log(multiMap(items, functions));
Мой код возвращает: { catfood: 'CATFOOD', glue: 'Glue', beer: 'beerbeer' }
Я хочу вернуть: { catfood: ['CATFOOD', 'Catfood', 'catfoodcatfood'], glue: ['GLUE', 'Glue', 'glueglue'], beer: ['BEER', 'Beer', 'beerbeer'] }, 'Beer', 'beerbeer'] }
Что я делаю не так?
Примечание: я знаю, что могу использовать модифицирующие функции (то есть, уменьшить), чтобы сделать это, но я хочу сначала выяснить это, используя цикл for.