TypedArray.prototype.reduce()
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.
Метод reduce() экземпляров TypedArray выполняет предоставленную пользователем функцию обратного вызова "reducer" для каждого элемента типизированного массива, по порядку, передавая возвращаемое значение предыдущего элемента. Окончательным результатом выполнения reducer для всех элементов типизированного массива является одно значение. Этот метод имеет тот же алгоритм, что и Array.prototype.reduce().
Попробуйте
const uint8 = new Uint8Array([0, 1, 2, 3]);
function sum(accumulator, currentValue) {
return accumulator + currentValue;
}
console.log(uint8.reduce(sum));
// Expected output: 6
Синтаксис
reduce(callbackFn) reduce(callbackFn, initialValue)
Параметры
-
callbackFn - Функция, которая будет выполнена для каждого элемента типизированного массива. Её возвращаемое значение становится значением параметра
accumulatorпри следующем вызовеcallbackFn. Для последнего вызова возвращаемое значение становится возвращаемым значениемreduce(). Функция вызывается со следующими аргументами:-
accumulator - Значение, полученное в результате предыдущего вызова
callbackFn. При первом вызове его значение равноinitialValue, если последнее указано; в противном случае его значение равноarray[0]. -
currentValue - Значение текущего элемента. При первом вызове его значение равно
array[0], если указаноinitialValue; в противном случае его значение равноarray[1]. -
currentIndex - Индекс позиции
currentValueв типизированном массиве. При первом вызове его значение равно0, если указаноinitialValue, иначе1. -
array - Типизированный массив, для которого был вызван
reduce().
-
-
initialValueНеобязательный - Значение, которым
accumulatorинициализируется при первом вызове функции обратного вызова. Если указаноinitialValue,callbackFnначинает выполняться с первым значением в типизированном массиве какcurrentValue. ЕслиinitialValueне указано,accumulatorинициализируется первым значением в типизированном массиве, аcallbackFnначинает выполняться со вторым значением в типизированном массиве какcurrentValue. В этом случае, если типизированный массив пуст (так что нет первого значения, которое можно вернуть какaccumulator), будет выброшена ошибка.
Возвращаемое значение
Значение, которое получается в результате полного выполнения функции обратного вызова "reducer" для всего типизированного массива.
Исключения
-
TypeError - Выбрасывается, если типизированный массив не содержит элементов и
initialValueне предоставлено.
Описание
Подробнее см. Array.prototype.reduce(). Этот метод не является универсальным и может быть вызван только для экземпляров типизированных массивов.
Примеры
Суммирование всех значений в массиве
const total = new Uint8Array([0, 1, 2, 3]).reduce((a, b) => a + b); // total === 6
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | Bun | Deno | Node.js | |
reduce |
45 |
12 |
37 |
32 |
10 |
45 |
37 |
32 |
10 |
5.0 |
45 |
10 |
1.0.0 |
1.0 |
4.0.0 |
См. также
- Polyfill для
TypedArray.prototype.reduceвcore-js - Руководство по типизированным массивам JavaScript
TypedArrayTypedArray.prototype.map()TypedArray.prototype.reduceRight()Array.prototype.reduce()Object.groupBy()Map.groupBy()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/reduce