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

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

方法一:先利用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])
    }
}

  • 10
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值