js数组去重并排序

要过滤掉数组中的重复值并从小到大排序,可以使用 JavaScript 的 Set 去重和 Array.prototype.sort() 方法进行排序。以下是实现代码:

const arr = [9, 8, 7, 5, 6, 3, 4, 1, 2, 1, 9, 8];

// 1. 使用 Set 去重
const uniqueArr = [...new Set(arr)];

// 2. 使用 sort 方法排序
const sortedArr = uniqueArr.sort((a, b) => a - b);

console.log(sortedArr); // 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]

代码说明:

  1. 去重

    • new Set(arr):将数组转换为 SetSet 会自动去除重复值。
    • [...new Set(arr)]:将 Set 转换回数组。
  2. 排序

    • sort((a, b) => a - b):对数组进行升序排序。sort 默认按字符串排序,因此需要传入比较函数 (a, b) => a - b 来确保按数值大小排序。

比较函数的返回值决定了排序顺序:负数(a 在前)、零(不变)、正数(b 在前)。

输出结果:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

简化写法:

如果希望代码更简洁,可以写成一行:

const sortedUniqueArr = [...new Set(arr)].sort((a, b) => a - b);
console.log(sortedUniqueArr); // 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]

这种方法既高效又简洁,适合处理类似的数组操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值