Как функция characterCount работает через функцию сокращения высшего порядка? - PullRequest
0 голосов
/ 28 сентября 2019

Я изучаю JavaScript с помощью книги «Красноречивый JavaScript» , и я столкнулся с некоторым препятствием при попытке понять, что происходит с этими функциями.

Главафункции более высокого порядка, и в основном это касается функций map, filter и reduce.

Я, честно говоря, не понимаю, как функция characterCount работает через другую.Может кто-нибудь объяснить это?

В приведенном ниже коде автор ссылается на какие-то хранимые данные в array, называемые SCRIPTS, которые отображают информацию о нескольких сценариях.

function reduce(array, combine, start) {
  let current = start;

  for (let element of array) {
    current = combine(current, element);
  }

  return current;
}

function characterCount(script) {
  return script.ranges.reduce((count, [from, to]) => {
    return count + (to - from);
  }, 0);
}

console.log(SCRIPTS.reduce((a, b) => {
  return characterCount(a) < characterCount(b) ? b : a;
})); // → {name: "Han", …}
...