使用js,判断数组中是否有重复数据

JavaScript08

使用js,判断数组中是否有重复数据,第1张

//数组去重

var arr = [1,3,5,6,1,4,2,6,7]

var newArr = []

for(var i in arr) {

if(newArr.indexOf(arr[i]) == -1) {

newArr.push(arr[i])

}

}

console.log(newArr)

判断是否有重复数据的话,只要判断arr和newArr是否相等就可以

//还有es6写法

var arr = [1,3,5,6,1,4,2,6,7]

var newArr = Array.from(new Set(arr))

console.log(newArr)

1、通过正则判断。

var ary = new Array("111","ff","222","aa","222")

alert(mm(ary))

// 验证重复元素,有重复返回true;否则返回false

function mm(a){return /(\x0f[^\x0f]+)\x0f[\s\S]*\1/.test("\x0f"+a.join("\x0f\x0f") +"\x0f")}

2、通过数组排序,比较临近元素,可指出重复的元素。

var ary = new Array("111","22","33","111","22")

var nary = ary.sort()

for(var i = 0i <nary.length - 1i++){

if (nary[i] == nary[i+1]){alert("重复内容:" + nary[i])}

}

3、通过字符串查找。

var ary = new Array("111","22","33","111","22")

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

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

if(s.replace(ary[i] + ",", "").indexOf(ary[i] +",") >-1){alert("重复内容:" + ary[i])}

}

4、通过哈希

var ary = new Array("111","22","33","111","22")                                   

alert(isRepeat(ary))// 验证重复元素,有重复返回true;否则返回false                         

function isRepeat(arr) {

var hash = {}

for(var i in arr) {

if(hash[arr[i]]){return true}

// 不存在该元素,则赋值为true,可以赋任意值,相应的修改if判断条件即可

hash[arr[i]] = true}

return false

}

很典型的ajax实现的。类似查询用户名是否已经存在的操作。看样子你是不会ajax,不知道你会写后台代码不。你的后台用什么写的java还是什么?用ajax向后台把你的输入传入后台用jdbc技术连接数据库然后查询输入是否存在。然后根据查询结果在回调函数中让页面显示不同的提示给用户。ajax入门级的例子里面估计就有,建议看一下。如果是java的话涉及到了这些东西。1、js(ajax)2、servlet 3、jdbc 这些东西你要会才行