Gtld aggregateAverage
Краткое описание
Функция предназначена аггрегации массива данных. Функция возвращает массив с указанным количеством элементов. Данная функция используется для уменьшения количества элементов массива путем усреднения данных по группам.
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;
}