Если вы не возражаете против использования underscore.js , вы можете использовать функцию _.chunk()
для легкого разбиения массива на части, а затем map()
каждого фрагмента в функцию reduce()
, которая усредняет каждый фрагмент .
При импорте библиотеки underscore.js
вы можете ссылаться на библиотеку, используя символ _
.
const arr = [0, 1, 2, 3, 4, 5];
const len = 3;
const result = _.chunk(arr, len).map(chunk => chunk.reduce((a, b) => a + b, 0) / chunk.length);
console.log(result); // Outputs [1, 4]
Если у вас есть массив нечетной длины; скажем, что arr = [0, 1, 2, 3, 4, 5, 6]
, тогда result
будет [1, 4, 6]
.
В HTML вы можете включить библиотеку в тег <script>
:
<script src="http://underscorejs.org/underscore.js"></script>
Вот рабочий jsfiddle , где вы можете увидеть его в действии (вам придется открыть инструменты F12, чтобы увидеть вывод консоли; встроенные фрагменты StackOverflow довольно прикольные и работают неправильно) .