js实现数组去重排序
数组去重排序的实现方法
使用 Set 和 sort 方法
Set 数据结构可以自动去除重复元素,结合数组的 sort 方法可以实现去重和排序。
const arr = [3, 1, 2, 2, 4, 3, 5];
const uniqueSorted = [...new Set(arr)].sort((a, b) => a - b);
console.log(uniqueSorted); // [1, 2, 3, 4, 5]
使用 filter 和 indexOf 方法
通过 filter 方法结合 indexOf 判断元素是否为首次出现,再使用 sort 排序。
const arr = [3, 1, 2, 2, 4, 3, 5];
const uniqueSorted = arr
.filter((item, index) => arr.indexOf(item) === index)
.sort((a, b) => a - b);
console.log(uniqueSorted); // [1, 2, 3, 4, 5]
使用 reduce 和 includes 方法
利用 reduce 方法累积不重复元素,再用 sort 排序。
const arr = [3, 1, 2, 2, 4, 3, 5];
const uniqueSorted = arr
.reduce((acc, curr) => (acc.includes(curr) ? acc : [...acc, curr]), [])
.sort((a, b) => a - b);
console.log(uniqueSorted); // [1, 2, 3, 4, 5]
使用 for 循环和对象存储
通过 for 循环遍历数组,利用对象存储已出现元素,最后对结果排序。
const arr = [3, 1, 2, 2, 4, 3, 5];
const unique = [];
const seen = {};
for (let item of arr) {
if (!seen[item]) {
seen[item] = true;
unique.push(item);
}
}
const uniqueSorted = unique.sort((a, b) => a - b);
console.log(uniqueSorted); // [1, 2, 3, 4, 5]
使用 lodash 库
如果项目中使用了 lodash 库,可以直接调用其方法实现。
const _ = require('lodash');
const arr = [3, 1, 2, 2, 4, 3, 5];
const uniqueSorted = _.sortBy(_.uniq(arr));
console.log(uniqueSorted); // [1, 2, 3, 4, 5]
以上方法均可实现数组去重和排序,选择适合项目需求和性能要求的方法即可。







