Взять содержимое массива и вернуть одно значение JavaScript
Добавить в избранное
Взять содержимое массива и вернуть одно значение. Это значение может быть чем угодно: строкой, числом, объектом или даже другим массивом.
Метод Array.reduce() принимает два аргумента: метод обратного вызова для запуска для каждого элемента массива и начальное значение.
Обратный вызов также принимает два аргумента: accumulator, который является текущим объединённым значением, и current элемент в цикле. Всё, что вы возвращаете, используется как аккумулятор для следующего элемента в цикле. В самом первом цикле вместо этого используется это начальное значение.
/** * Add all of the numbers in an array */ var total = [1, 2, 3].reduce(function (sum, current) { return sum + current; }, 0); // logs 6 console.log(total); /** * Create a new array with only the names of wizards in Huffepuff */ var wizards = [ { name: 'Harry Potter', house: 'Gryfindor' }, { name: 'Cedric Diggory', house: 'Hufflepuff' }, { name: 'Tonks', house: 'Hufflepuff' }, { name: 'Ronald Weasley', house: 'Gryfindor' }, { name: 'Hermione Granger', house: 'Gryfindor' } ]; // This combines what you would otherwise do with map() and filter() into one step var hufflepuff = wizards.reduce(function (newArr, wizard) { if (wizard.house === 'Hufflepuff') { newArr.push(wizard.name); } return newArr; }, []); // logs ["Cedric Diggory", "Tonks"] console.log(hufflepuff);