Gtld sortedArray
Перейти к навигации
Перейти к поиску
Краткое описание
Функция предназначена для сортировки массива данных по убыванию с сохранением исходных индексов его элементов. Данная функция используется для ранжирования значений с дальнейшим использованием рангов.
Cодержание функции может дополняться!
Синтаксис
Стандартная конструкция выглядит таким образом:
let __sortedArr = getSortedArray(array);
Аргументы
array- исходный массив числовых данных;
Содержание функции
/**
* Сортирует массив чисел по убыванию и возвращает как отсортированные значения,
* так и соответствующие им индексы из исходного массива.
*
* @param {number[]} arr - Массив чисел для сортировки.
* @returns {{ values: number[], indices: number[] }} Объект с двумя полями:
* - values: массив значений, отсортированных по убыванию;
* - indices: массив индексов элементов в исходном массиве, соответствующих
* порядку отсортированных значений.
*
* @example
* const result = getSortedArray([10, 3, 8, 15]);
* // result.values => [15, 10, 8, 3]
* // result.indices => [3, 0, 2, 1]
*/
function getSortedArray(arr) {
const indexed = arr.map((value, index) => ({ value, index })); //создаём массив объектов со значением и исходным индексом
indexed.sort((a, b) => b.value - a.value); //сортируем по значению по убыванию
const sortedValues = indexed.map(item => item.value); //получаем отсортированные значения
const sortedIndices = indexed.map(item => item.index); //получаем индексы элементов в исходном массиве в порядке сортировки
return {
values: sortedValues,
indices: sortedIndices
}
}