Gtld aggregateAverage: различия между версиями
Перейти к навигации
Перейти к поиску
(Новая страница: «== Краткое описание == Функция предназначена аггрегации массива данных. Функция возвращает массив с указанным количеством элементов. Данная функция используется для уменьшения количества элементов массива путем усреднения данных по группам. <p style="col...») |
Нет описания правки |
||
| Строка 1: | Строка 1: | ||
== Краткое описание == | == Краткое описание == | ||
Функция предназначена аггрегации массива данных. Функция возвращает массив с указанным количеством элементов. Данная функция используется для уменьшения количества элементов массива путем усреднения данных по группам. | Функция предназначена для аггрегации массива данных. Функция возвращает массив с указанным количеством элементов. Данная функция используется для уменьшения количества элементов массива путем усреднения данных по группам. | ||
<p style="color: red>Cодержание функции может дополняться!</p> | <p style="color: red>Cодержание функции может дополняться!</p> | ||
Текущая версия от 06:02, 28 сентября 2026
Краткое описание
Функция предназначена для аггрегации массива данных. Функция возвращает массив с указанным количеством элементов. Данная функция используется для уменьшения количества элементов массива путем усреднения данных по группам.
Cодержание функции может дополняться!
Синтаксис
Стандартная конструкция выглядит таким образом:
let __aggr = aggregateAverage(array, M);
Аргументы
array- исходный массив данных;M- длина целевого массива;
Содержание функции
function aggregateAverage(arr, M) {
//Функция для уменьшения элементов исходного массива методом агрегации (среднее по группам)
//arr - исходный массив данных
//M - длина целевого массива данных
const result = []; //массив для результата
const N = arr.length; //длина исходного НЧ массива
if (M <= 0 || N === 0) return []; //если целевой массив пустой, то возвращаем пустой
if (M >= N) return arr.slice(); //если размер целевого >= исходного, то возвращаем копию исходного
//Разбиваем массив на M групп с примерно равным количеством элементов
for (let i = 0; i < M; i++) {
const start = Math.floor(i * N / M); //стартовый индекс группы
const end = Math.floor((i + 1) * N / M); //конечный индекс группы
const group = arr.slice(start, end); //вырезаем группу
const avg = group.reduce((a, b) => a + b, 0) / group.length; //считаем среднее в группе
result.push(avg);
}
return result;
}