jquery 判断数组中是否有重复值

jquery 判断数组中是否有重复值,第1张

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

}

无论jquery和原生js,去除重复数据都没有直接的方法。方法无非是下面两个:

第一、根据json数据字段的唯一性

var a = ["a","ss","a","c"],b={}

$.each(a,function(i,val){

if (b[val]) a.splice(i,1)

})

第二种方法,无非就是双循环,逐个判断老数组的元素与新数组的原始是不是一样。代码就不写了,也不太推荐

1、给输入名字的文本框绑定一个失去焦点事件,jquery中为focusout事件,同时在文本框后定义一个显示检查结果的span。

2、当文本框失去焦点时,调用ajax异步向后台发送请求。

3、将请求结果显示在文本框后面提示用户,避免所有信息填写完毕表单提交时才发现名字重复。

示例:

<input type='text' id='name'/><span id='errorMsg'></erorMsg>

//给文本框绑定一个失去焦点事件

$("#name").focusout(function() {

var name = $("#name").val()

if(name != null &&name != ''){

checkName(name)

}

})

//发ajax请求到后台判断用户名是否重复

function checkName(name){

$.ajax({

url : servletUrl,

type : "post",

dataType : 'JSON',

data : {name:name},

success : function(result) {

//已经存在该名字提示用户

if(result == true){

$("#errorMsg").html("该用户名已经存在")

}else{

$("#errorMsg").html("恭喜您,用户名可以使用")

}

}

},

error : function() {

alert('检查用户是否存在发生错误')

}

})

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10098923.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存