Вы можете просто использовать Array.prototype.join
здесь. Это было бы более эффективно, чем reduce
для этого случая.
console.log(['x','y','z'].join(""));
// xyz
Но если вы хотите использовать _.reduce
, вы можете сделать это, как этот
_.reduce(['x', 'y', 'z'], function(accumulator, currentItem) {
return accumulator + currentItem;
});
// xyz
_.reduce
просто обертка над родной Array.prototype.reduce
в средах, которые поддерживают его. Вы можете понять, как reduce
будет обрабатывать ввод, от this answer, в деталях.
Вот краткое объяснение.
Поскольку начальное значение не передано _.reduce
, первое значение в коллекции будет использоваться как значение аккумулятора, а функция вызывается с использованием значения аккумулятора и второго значения. Таким образом, функция вызывается как этот
accumulator : 'x'
currentItem : 'y'
-----------------
accumulator : 'xy' (because returned value will be passed again as accumulator)
и при следующем вызове,
accumulator : 'xy'
currentItem : 'z'
-----------------
accumulator : 'xyz' (since no elements left, accumulator will be returned)
Не уверен, если это полезно или нет, но если вы хотите копать немного глубже в использовании складка (или уменьшите, как подчеркивает Underscore), посмотрите этот документ: http://www.cs.nott.ac.uk/~gmh/fold.pdf –