我有一个包含10到15个电子邮件地址的表单。如何检查所有地址是否唯一?我怎样才能确定哪些是重复的?
我正在寻找JavaScript或jQuery解决方案。
答案 0 :(得分:1)
您可以使用一系列电子邮件和jQuery语句inArray
,如下所示:
function validateEmails() {
var emailArray = ["email1", "email2", "email3", "email4"];
var outputArray = [];
for (int i = 0; i < emailArray.length; i++) {
if($.inArray(emailArray[i], outputArray) != -1) {
//item is not in array, add it
outputArray.push(emailArray[i]);
} else {
//item is a duplicate
alert("This is the duplicate email id:" + emailArray[i]);
}
}
}
基本上,您只需阅读数组中的每个电子邮件ID emailArray
即可。然后,您将遍历每个对象。如果$.inArray
未返回-1
,则该项目是重复的,该窗口会提醒用户指定的ID。
答案 1 :(得分:1)
要在数组中查找重复项,请将元素插入到字典中,以跟踪每个元素的显示次数。然后,每个计数大于1的元素都是重复的。
演示:
function findDuplicates(data) {
var counts = {};
data.forEach(function (item) {
if (counts[item] === undefined) {
counts[item] = 1;
} else {
counts[item] += 1;
if (counts[item] == 2) {
print('duplicate: ' + item);
}
}
});
}
function print(s) {
document.write(s + '<br />');
}
var addresses = ['abc@xyz.com', 'foo@bar.com', 'abc@xyz.com', 'babar@elephants.com', 'president@whitehouse.gov', 'babar@elephants.com', 'abc@xyz.com'];
findDuplicates(addresses);