当前位置:首页 > JavaScript

js实现数组去重排序

2026-01-31 07:29:14JavaScript

数组去重排序的实现方法

使用 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 库,可以直接调用其方法实现。

js实现数组去重排序

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]

以上方法均可实现数组去重和排序,选择适合项目需求和性能要求的方法即可。

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

相关文章

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.j…

js实现全选

js实现全选

实现全选功能的方法 在JavaScript中实现全选功能通常涉及监听全选复选框的点击事件,并根据其状态控制其他复选框的选中状态。以下是几种常见的实现方式: 基础DOM操作实现 通过获取所有目标复选框…

jquery js

jquery js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够更高…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现吸色

js实现吸色

使用Canvas实现吸色功能 通过Canvas的getImageData方法获取像素颜色数据。创建一个Canvas元素,将目标图像绘制到Canvas上,通过鼠标事件获取坐标对应的颜色值。 c…