JS判断一个数组中是否有重复值

2023-11-04

首先,该笔记内容是将网上查阅的资料做了一个整合,便于自己快速查阅并解决问题。

方法一:先利用ES6语法将数组去重,之后再与原数组比较长度,若长度小于原数组,则说明数组有重复值。

Array.from(new Set(arr)).length < arr.length

//ES6去重方法
// 1. 拓展运算符 + new Set方法
let arr1 = [...new Set(arr)]

// 2. Array.from + new Set方法
let arr2 = Array.from(new Set(arr))

// 3. new Map() + filter方法
let myMap = new Map()
let arr3 = arr.filter(item => {
    return !myMap.has(item) && mayMap.set(item, 1)
})

方法二:先将数组转换成字符串,再遍历数组,在字符串中移除当前的数组元素之后还能找到该元素,则说明数组有重复值。(感谢评论区“浮生倒影”的抓虫纠正,现已优化代码)

var str = "," + arr.join(",,") + ",";
for(let i=0; i<arr.length; i++){
    if(str.replace("," + arr[i]+",", "").indexOf("," + arr[i]+",") > -1){
        alert("数组中重复元素是:" + arr[i]);
        break
    }
}

方法三:对数组进行排序,对比上一个元素和下一个元素是否相等,若相等,则说明数组有重复值。

var sarr = arr.sort();
for(let i=0; i<sarr.length; i++){
    if(sarr[i] == sarr[i+1]){
        alert("数组中重复元素是:" + sarr[i])
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS判断一个数组中是否有重复值 的相关文章

随机推荐

  • C语言课程设计之设计菜单程序

    C语言课程设计之设计菜单程序 设计要求 1 菜单内容 程序运行后 给出三个菜单选项的内容和输入提示 1 FindNum 2 Dimand 3 Goodbye Input 1 3 2 设计要求 使用1 3数字来选择菜单项 其他输入则不起作用
  • 【剑指offer】数据结构——字符串

    目录 数据结构 字符串 直接解 剑指offer 05 替换空格 剑指offer 17 打印从1到最大的n位数 剑指offer 20 表示数值的字符串 剑指offer 37 序列化二叉树 剑指offer 50 第一个只出现一次的字符 剑指of
  • CUDA笔记

    1 cudaDeviceSynchronize 用于CPU和GPU同步 即cpu和GPU均运行至cudaDeviceSynchronize 后再继续 CPU多线程时 会阻止所有线程 2 syncthreads 用于核函数内线程块线程同步 即
  • Cygwin配置优化(乱码、颜色等问题)

    前面介绍了如何将Cygwin集成到Windows资源管理器的右键菜单中 点击在当前路径下打开窗口 本文介绍一些乱码问题与美化问题 1 乱码问题 在Cygwin中执行Windows原生程序 如ping ipconfig 时会出现中文乱码 显示
  • 遗传算法与TSP问题

    一 遗传算法 遗传算法 Genetic Algorithm 是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型 是一种通过模拟自然进化过程搜索最优解的方法 遗传算法是从代表问题可能潜在的解集的一个种群 population
  • 一致性Hash算法

    原文 https www cnblogs com lpfuture p 5796398 html 一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的 设计目标是为了解决因特网中的
  • matlab中dropoutLayer,[转]对 CNN 中 dropout layer 的理解

    原文网址 http blog csdn net u012702874 article details 45030991 dropout layer的目的是为了防止CNN 过拟合 那么为什么可以有效的防止过拟合呢 首先 想象我们现在只训练一个
  • 例说数据结构&STL(七)——priority_queue

    1 白话优先队列 priority queue 前面我们已经相继介绍了双向队列和FIFO特性的队列 这里我们还要接触另一个包含 队列 称呼的数据结构 优先队列 其实这三个数据结构名称看似很像 实则天差万别 通过下面的介绍你就会有很深的体会了
  • DDR一些引脚说明

    信号名 方向 功能描述 CK t CK c Input 差分时钟输入 所有的地址 控制信号都是通过CK t的上升沿与CK c的下降沿进行采样的 CKE Input 时钟使能 CKE为高电平时 启动内部时钟信号 设备输入缓冲以及输出驱动单元
  • 牛客在线编程-华为机试-中等

    牛客在线编程题目 华为机试 中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21 21 HJ17 坐标移动 字符串 中等 24 79 HJ20 密码验证合格程序 数组 字符串 模拟 中等 28 91 HJ24 合唱
  • pycharm中使用GPU跑程序

    查看机器上GPU情况 命令 nvidia smi 功能 显示机器上gpu的情况 命令 nvidia smi l 功能 定时更新显示机器上gpu的情况 命令 watch n 3 nvidia smi 功能 设定刷新时间 秒 显示GPU使用情况
  • 面试回答 CopyOnWrite 的三重境界,1%的人能答到最后

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 目录 1 读多写少的场景下引发的问题 2 引入 CopyOnWrite 思想解决问题 3 CopyOnWrite思想在Kafka源码中的运用 今天聊一个非常硬核的技术
  • [动态系统的建模与分析]8_频率响应_详细数学推导 G(jw)_滤波器

    运放滤波器 3 反相同相比例放大电路 Multisim电路仿真 运放滤波器 2 运放反馈原理 运放滤波器 1 理想运放 虚短虚断 现代控制理论 11 现代控制理论串讲 完结 pdf获取 信号与系统在工程中 里面的一些工具应该是奠基石 电路
  • 浅析hadoop写入数据api

    对于一般文件 都有满足随机读写的api 而hadoop中的读api很简单用FSDataInputStream类就可以满足一般要求 而hadoop中的写操作却是和普通java操作不一样 hadoop对于写操作提供了一个类 FSDataOutp
  • 惠普打印机136w硒鼓芯片怎么清零_惠普136w打印机怎么清零

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 惠普136w打印机清零的方法如下 1 关闭打印机电源 并把电源线从电源插座拨开 2 按紧打印机的电源键同时插上电源线 3 不松开电源键 按4下进纸键 电源灯显示 黄 橙 4
  • 学习记录-VS踩坑记录

    一 安装VS2015后 CMAKE执行错误 CMAKE C COMPILER NOTFOUND was not found CMAKE CXX COMPILER NOTFOUND was not found 环境 1 公司内网 无法上外网
  • 算法笔记-第四章-第六章

    4 1排序 1 选择排序 思路 总共需要进行N趟操作 每次从i n中选出最小的元素并与第I个元素交换 算法的时间复杂度为O n2 假设有数组A i 0 lt i lt n 1 如下 void selectSort for int i 0 i
  • 【设计模式】软件设计遵循——六大原则

    软件设计遵循 六大原则 1 开闭原则 定义 一个软件实体如类 模块和函数应该对扩展开放 对修改关闭 原则 用抽象构建框架 用实现扩展细节 优点 提高软件系统的可复用性和可维护性 2 里氏替换原则 定义 所有引用基类的地方必须能透明化地使用其
  • matlab函数零点求法,Matlab之函数零点

    Matlab之函数零点 Matlab中求函数零点的函数是fzero 一元函数 fsolve 二元函数 roots 一元多项式 等 fzero fzero可以求任何一元函数的零点 求函数 的零点 x 3 0 1 4 y x 2 sin x x
  • JS判断一个数组中是否有重复值

    首先 该笔记内容是将网上查阅的资料做了一个整合 便于自己快速查阅并解决问题 方法一 先利用ES6语法将数组去重 之后再与原数组比较长度 若长度小于原数组 则说明数组有重复值 Array from new Set arr length lt