Gtld sortedArray

Материал из GTL-wiki
Версия от 05:03, 9 октября 2026; AlekseyCube (обсуждение | вклад) (Новая страница: «== Краткое описание == Функция предназначена для сортировки массива данных по убыванию с сохранением исходных индексов его элементов. Данная функция используется для ранжирования значений с дальнейшим использованием рангов. <p style="color: red>Cодержание фу...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Краткое описание

Функция предназначена для сортировки массива данных по убыванию с сохранением исходных индексов его элементов. Данная функция используется для ранжирования значений с дальнейшим использованием рангов.

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
    }
}