Сортировка

Создадим массив и напишем функцию добавления элемента в конец массива.

let arr = [];

function add(x, y) {
    arr.push({
        x: x,
        y: y,
        index: arr.length,
    });
}

Добавим элементы в массив.

add(15, 20);
add(10, 20);
add(15, 14);
add(10, 18);
add(10, 19);
add(15, 20);
add(12, 18);
add(15, 14);

Напишем универсальную функцию сортировки элементов массива.

Функция принимает сортируемый массив и массив полей.

Сравнение элементов массива происходит в зависимости от порядка полей в массиве полей.

function sortArray(arr, fields) {
    arr.sort(function(a, b) {
        for(let i = 0; i < fields.length; i++) {
            const field = fields[i];
            if(a[field] < b[field]) return -1;
            if(a[field] > b[field]) return 1;
        }
        return 0;
    });
}

Вызываем функцию сортировки массива.

sortArray(arr, ["x", "y"]);

Выводим полученный результат в консоль.

console.log("\nJavaScript\n\n")

arr.forEach((e) => {
    console.log("X: " + e.x + "  Y: " + e.y + "  Index: " + e.index);
});

console.log("\n\n");

Результат работы программы.

JavaScript


X: 10  Y: 18  Index: 3
X: 10  Y: 19  Index: 4
X: 10  Y: 20  Index: 1
X: 12  Y: 18  Index: 6
X: 15  Y: 14  Index: 2
X: 15  Y: 14  Index: 7
X: 15  Y: 20  Index: 0
X: 15  Y: 20  Index: 5

Last updated

Was this helpful?