Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript确保所有输入都具有唯一的值_Javascript_Loops_Input - Fatal编程技术网

Javascript确保所有输入都具有唯一的值

Javascript确保所有输入都具有唯一的值,javascript,loops,input,Javascript,Loops,Input,好吧,我知道我想得太多了,因为我一点也不明白。我有一组输入。我如何检查以确保它们的值都是唯一的?谢谢 用这个 var areUnique = true; $.each($("Input_Selector",function(){ var val = $(this).val(); $.each($("Input_Selector",function(){ if(val == $(this).val()){areUnique = false;} }); })); //check the

好吧,我知道我想得太多了,因为我一点也不明白。我有一组输入。我如何检查以确保它们的值都是唯一的?谢谢

用这个

var areUnique = true;
$.each($("Input_Selector",function(){
var val = $(this).val();
  $.each($("Input_Selector",function(){
   if(val == $(this).val()){areUnique = false;}
  });
}));
//check the value of areUnique here

这似乎是一个验证问题。你可以用一堆很重的if子句(我想这是不需要的)来做一些奇怪的事情,尝试在数组中添加所有这些输入,并在while循环中检查它们。或者,如果这些输入是字符串,您可以对它们进行concat并尝试使用regexp


对于这一点,应该有更多的答案,当然,在这里传唤的人会更好

使用此伪集实现并检查每个条目是否已重复
var inputs=[], flag=false;
$('input').each(function(){
    if ($.inArray(this.value, inputs) != -1) flag=true ;
    inputs.push(this.value);
});

if (flag==true) {
   //duplicates exists
}
也就是说,如果集合中的x返回false,则迭代并检查


你可以使用jquery还是纯javascript?你可以通过在第一个循环中检查areUnique的值来提高效率,如果该值为false则中断。哇,这么多响应太快了:p我尝试了两个,直到我找到了这个,它的简单性就死了。完美的非常感谢你:
function uniqueValues(elements) {

    var values = {},
        len = elements.length,
        i = 0;

    for (; i < len; i++) {
        if (!values[elements[i].value]) values[elements[i].value] = true;
        else return false;
    }
    return true;
};