Чтобы отсортировать числовой массив JavaScript с дубликатами, вы можете использовать различные методы. Вот несколько подходов:
- Использование метода
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]
- Использование методов
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]
- Использование метода
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]
- Использование библиотеки
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]