JavaScript уменьшить путаницу в функциональном коде? - PullRequest
1 голос
/ 14 июля 2020

В этом коде obj ссылается на все элементы в массиве? Означает ли obj [item] проверку, находится ли «текущий элемент» в объекте (obj). Если его нет, он присваивает ему 0, если он увеличивает его на 1.

const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car',
  'van', 'car', 'truck', 'pogostick'
];

const transportation = data.reduce(function(obj, item) {
  if (!obj[item]) {
    obj[item] = 0;
  }
  obj[item]++;
  return obj;
}, {});

console.log(transportation);

1 Ответ

0 голосов
/ 14 июля 2020

Возможно, вы захотите проверить документацию: Array.prototype.reduce ()

Первый аргумент функции, переданной в reduce (obj), - это аккумулятор, который в вашем случае {} вы можете установить его вторым аргументом метода reduce или он будет использоваться по умолчанию как первый элемент повторяемого массива.

Второй аргумент (элемент) - это текущий повторяемый элемент массива, третий аргумент - это текущий индекс, а четвертый - ссылка на сам массив (данные).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...