Сравните 2 массива: один содержит строки, другой - числа. Суммарное количество повторяющихся строк - PullRequest
0 голосов
/ 06 мая 2020

У меня 2 массива. Скажем,

categories = ["hotels", "transfers","food","transfers"] 
amounts = [1500, 250, 165, 150]

Я хотел бы создать объект, который выводит объект ...

result = {hotels: 1500, transfers: 400, food: 165}

Функция должна oop по категориям, заполнить объект результата, добавив уникальные элементы категорий как ключи объектов, а суммы как значения. Функция также должна складывать количество повторяющихся ключей.

Я пробовал несколько вещей, например по 2 вложенных для каждого в массивах, для циклов, ... но я не могу понять ничего, что работает .. .

1 Ответ

1 голос
/ 06 мая 2020

Если у вас всегда синхронизированы индексы обоих массивов c, вы можете сделать это следующим образом:

const categories = ["hotels", "transfers","food","transfers"];
const amounts = [1500, 250, 165, 150];
const result = {};

categories.forEach((category, index) => {
  const doesKeyExist = !!result[category];
  const amount = amounts[index];
  const correctAmount = doesKeyExist ? result[category] + amount : amount;

  result[category] = correctAmount;
}

это приведет к тому, что вы ожидаете:

result = {hotels: 1500, transfers: 400, food: 165}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...