当前位置: 首页 > news >正文

数组去重方法

JavaScript数组去重方法

方法一:Set方法(最简洁)

function uniqueArray(arr) {return [...new Set(arr)];// 或者// return Array.from(new Set(arr));
}// 一行代码版本
const unique = arr => [...new Set(arr)];// 示例
const arr = [1, 2, 2, 3, 4, 4, 5];
console.log(uniqueArray(arr)); // [1, 2, 3, 4, 5]

方法二:手写实现

使用indexOf/includes

function uniqueArray(arr) {const result = [];for (let i = 0; i < arr.length; i++) {if (result.indexOf(arr[i]) === -1) {result.push(arr[i]);}}return result;
}// 使用includes(ES6)
function uniqueWithIncludes(arr) {const result = [];for (let i = 0; i < arr.length; i++) {if (!result.includes(arr[i])) {result.push(arr[i]);}}return result;
}

使用对象/Map作为哈希表

function uniqueWithObject(arr) {const obj = {};const result = [];for (let i = 0; i < arr.length; i++) {const item = arr[i];const type = typeof item;// 处理对象属性名会自动转为字符串的问题if (!obj[item] || (type === 'object
http://www.dtcms.com/a/169844.html

相关文章:

  • ROS2学习笔记|创建工作空间并打印文件内容
  • 2025年最新嵌入式开发STM32单片机详细教程(更新中)
  • Linux 进程间通信(IPC)详解
  • thonny提示自动补全功能
  • 【AI面试准备】NLP解析API文档生成测试脚本
  • AWS在跨境电商中的全场景实践与未来生态构建
  • GoFrame 奉孝学习笔记
  • PyTorch_指定运算设备 (包含安装 GPU 的 PyTorch)
  • HybridCLR 详解:Unity 全平台原生 C# 热更新方案
  • 【言语理解】中心理解题目之结构分析
  • 安卓基础(MediaProjection)
  • 基于Springboot旅游网站系统【附源码】
  • rails 8 CSS不起效问题解决
  • 华为云Flexus+DeepSeek征文|DeepSeek-V3商用服务开通教程
  • GCD 深入解析:从使用到底层实现
  • 数据库=====
  • 数字信号处理学习笔记--Chapter 0 数字信号处理概述
  • 【深度学习】典型的 CNN 网络
  • 力扣-字符串-165 比较版本号
  • P4552 [Poetize6] IncDec Sequence 题解
  • 玩转Docker | 使用Docker部署AI证件照工具
  • ARM 算数指令
  • 鼠标悬浮特效:常见6种背景类悬浮特效
  • 如何在 CentOS 7 命令行连接 Wi-Fi?如何在 Linux 命令行连接 Wi-Fi?
  • 蟋蟀的叫声,大自然的温度计
  • 网络Tips20-002
  • 多多铃声 7.4| 拥有丰富的铃声曲库,满足不同用户的个性化需求,支持一键设置手机铃声
  • 多把锁以及线程死锁问题
  • Spring AI 实战:第三章、Spring AI结构化输出之告别杂乱无章
  • 【RocketMQ NameServer】- NameServer 启动源码