当前位置:首页 > JavaScript

js实现数组去重排序

2026-04-04 23:29:30JavaScript

数组去重排序的实现方法

使用 Set 和 sort 方法

Set 数据结构天然具有去重特性,结合数组的 sort 方法可实现去重排序。

const arr = [3, 1, 2, 2, 4, 3];
const uniqueSorted = [...new Set(arr)].sort((a, b) => a - b);
console.log(uniqueSorted); // [1, 2, 3, 4]

使用 filter 和 indexOf 方法

通过 indexOf 判断元素首次出现的位置,配合 filter 实现去重,再用 sort 排序。

const arr = [3, 1, 2, 2, 4, 3];
const uniqueSorted = arr
  .filter((item, index) => arr.indexOf(item) === index)
  .sort((a, b) => a - b);
console.log(uniqueSorted); // [1, 2, 3, 4]

使用 reduce 方法

通过 reduce 累积不重复元素,最后对结果进行排序。

const arr = [3, 1, 2, 2, 4, 3];
const uniqueSorted = arr
  .reduce((acc, cur) => (acc.includes(cur) ? acc : [...acc, cur]), [])
  .sort((a, b) => a - b);
console.log(uniqueSorted); // [1, 2, 3, 4]

自定义排序规则

若需按特定规则排序(如降序或字符串排序),可调整 sort 回调函数。

// 降序排列
const arr = [3, 1, 2, 2, 4, 3];
const uniqueSorted = [...new Set(arr)].sort((a, b) => b - a);
console.log(uniqueSorted); // [4, 3, 2, 1]

处理复杂数据类型

对于对象数组的去重排序,需自定义比较逻辑。

js实现数组去重排序

const arr = [{id: 2}, {id: 1}, {id: 2}, {id: 3}];
const uniqueSorted = arr
  .filter((obj, index) => arr.findIndex(item => item.id === obj.id) === index)
  .sort((a, b) => a.id - b.id);
console.log(uniqueSorted); // [{id: 1}, {id: 2}, {id: 3}]

标签: 数组js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…

java如何输入数组

java如何输入数组

输入数组的方法 在Java中,可以通过多种方式输入数组,具体取决于输入源(如控制台、文件等)和数组类型(如基本类型或对象类型)。以下是几种常见的方法: 使用Scanner从控制台输入 对于基本数据类…