Я изучаю 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", …}