Сортировка массива JavaScript по двум числовым полям: методы и примеры

Чтобы отсортировать массив JavaScript по двум числовым полям, вы можете использовать различные методы. Вот несколько часто используемых подходов:

  1. Array.prototype.sort():
    Вы можете использовать метод sort()в сочетании с собственной функцией сравнения. Функция сравнения сравнивает два числовых поля и возвращает соответствующий порядок сортировки. Вот пример:

    const array = [
     { field1: 3, field2: 5 },
     { field1: 1, field2: 2 },
     { field1: 2, field2: 4 }
    ];
    array.sort((a, b) => {
     if (a.field1 === b.field1) {
       return a.field2 - b.field2;
     }
     return a.field1 - b.field1;
    });
  2. Использование библиотеки lodash:
    Если у вас есть библиотека lodash, вы можете использовать функцию sortBy()вместе с цепочкой для сортировки массива по нескольким полям. Вот пример:

    const _ = require('lodash');
    const array = [
     { field1: 3, field2: 5 },
     { field1: 1, field2: 2 },
     { field1: 2, field2: 4 }
    ];
    const sortedArray = _.sortBy(array, ['field1', 'field2']);
  3. Использование localeCompare():
    Если одно из полей является строкой, вы можете использовать метод localeCompare()для сравнения строкового поля и sort().для сравнения числового поля. Вот пример:

    const array = [
     { field1: 'apple', field2: 5 },
     { field1: 'banana', field2: 2 },
     { field1: 'apple', field2: 4 }
    ];
    array.sort((a, b) => {
     const stringComparison = a.field1.localeCompare(b.field1);
     if (stringComparison === 0) {
       return a.field2 - b.field2;
     }
     return stringComparison;
    });

Это всего лишь несколько методов сортировки массива JavaScript по двум числовым полям. Не забудьте адаптировать имена полей и структуру данных в соответствии с вашим конкретным вариантом использования.