当前位置:首页 > 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实现点击显示和隐藏

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

java如何输入数组

java如何输入数组

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

js图片上传实现

js图片上传实现

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API实现基础图片上传功能。HTML部分需要设置accept="image/…

js实现图片放大

js实现图片放大

使用 CSS transform 实现图片放大 通过 CSS 的 transform: scale() 属性实现图片放大效果。当鼠标悬停时,图片会平滑放大。 const img = document…

js 实现按钮点击

js 实现按钮点击

实现按钮点击的 JavaScript 方法 HTML 按钮元素 在 HTML 中创建一个按钮,可以通过 <button> 或 <input> 标签实现: <button…

js实现点击效果

js实现点击效果

实现点击效果的JavaScript方法 使用addEventListener绑定点击事件 通过document.getElementById或document.querySelector获取DOM元素…