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

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

  1. Использование метода sort(). Метод sort()можно использовать для сортировки массива в порядке возрастания. Однако он сортирует массив на месте и по умолчанию обрабатывает элементы как строки. Чтобы правильно отсортировать числовой массив, вам необходимо предоставить собственную функцию сравнения.
const arr = [3, 1, 5, 2, 4, 1, 3];
arr.sort((a, b) => a - b);
console.log(arr); // Output: [1, 1, 2, 3, 3, 4, 5]
  1. Использование методов Setи Array.from(): вы можете преобразовать массив в Set, чтобы удалить дубликаты, а затем преобразовать его. обратно в массив. После этого вы можете использовать метод sort().
const arr = [3, 1, 5, 2, 4, 1, 3];
const uniqueArr = Array.from(new Set(arr));
uniqueArr.sort((a, b) => a - b);
console.log(uniqueArr); // Output: [1, 2, 3, 4, 5]
  1. Использование метода reduce(). Вы можете использовать метод reduce()для перебора массива и построения отсортированного массива без дубликатов.
const arr = [3, 1, 5, 2, 4, 1, 3];
const sortedArr = arr.reduce((uniqueArr, num) => {
  if (!uniqueArr.includes(num)) {
    uniqueArr.push(num);
  }
  return uniqueArr;
}, []).sort((a, b) => a - b);
console.log(sortedArr); // Output: [1, 2, 3, 4, 5]
  1. Использование библиотеки lodash: если у вас установлена ​​библиотека lodash, вы можете использовать uniq()и sortBy( )функции.
const _ = require('lodash');
const arr = [3, 1, 5, 2, 4, 1, 3];
const sortedArr = _.sortBy(_.uniq(arr));
console.log(sortedArr); // Output: [1, 2, 3, 4, 5]