JS判断数组中是否有重复值得三种实用方法

JavaScript023

JS判断数组中是否有重复值得三种实用方法,第1张

//将数组转换成字符<img id="selectsearch-icon" src="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/qb/select-search.png" alt="搜索">串,遍历数组,移除一个元素後若还能找到该元素,那么这个元素就是重复的

var s = ary.join(",")+","

for(var i=0i<ary.lengthi++) {

if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) {

alert("数组中有重复元素:" + ary[i])

break

}

}

第一种实现方式,直接用“,”拆分字串为数组,用for循环依次判断每个字符是否有重复: <html> <head> <script language="javascript"> function CheckRepeat(){ var data = document.getElementById("txtData").value var r = getRepeatData(data)alert(r) }function getRepeatData(input){ var ary = input.split(",") var rdata = {}for(var i in ary){var c = ary[i] rdata[c] ? (rdata[c]++) : (rdata[c]= 1) } var strResult = ""for(var k in rdata){ if(rdata[k] >1) strResult += k + "出现了" + rdata[k] + "次,"} strResult &&(strResult.replace(/,$/,""))return strResult ? strResult : "字串(\"" + input + "\")中没有重复项!" }</script> </head> <body > <input type="text" id="txtData" size="80" value="1,2,3,4,1,5,2,6,1,7,2"/> <button onclick="CheckRepeat()">检查重复</button> </body></html>第二种方式,用正则表达式实现: <html> <head> <script language="javascript"> function CheckRepeat(){ var data = document.getElementById("txtData").value var r = getRepeatData(data)alert(r) }function getRepeatData(input){ var temp = "," + input + ","var reg = /([^,]+)(?=.*\1,)/g var result = []var exsits = {}while(reg.exec(temp)){ var c = RegExp.$1 if(!exsits[c]){ exsits[c] = truevar count = temp.split("," + c + ",").length - 1result.push(c + "出现了" + count + "次") } } return result.length ? result.join(",") : "字串(\"" + input + "\")中没有重复项!" }</script> </head> <body > <input type="text" id="txtData" size="80" value="1,2,3,4,1,5,2,6,1,7,2"/> <button onclick="CheckRepeat()">检查重复</button> </body></html>

js判断一个list里有重复map方法如下:

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

2、先将数组转换成字符串,再遍历数组,在字符串中移除当前的数组元素之后还能找到该元素,则说明数组有重复值。

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