如何在javascript中验证和比较重复的数组

如何在javascript中验证和比较重复的数组,javascript,arrays,validation,Javascript,Arrays,Validation,我将输入的值存储在变量中,并将它们保存在数组中 我想比较是否输入了任何重复的旅行id,如果输入了重复的旅行id及其相应的邮政编码,则添加红色错误 <p> <input id="tripcode1" value="tripcode1"> <input id="zipcode1" value="zipcode1"> </p> <p> <input id="tripcode2" value="tripcode2">

我将输入的值存储在变量中,并将它们保存在数组中

我想比较是否输入了任何重复的旅行id,如果输入了重复的旅行id及其相应的邮政编码,则添加红色错误

<p>
  <input id="tripcode1" value="tripcode1">
  <input id="zipcode1" value="zipcode1">
</p>
<p>
  <input id="tripcode2" value="tripcode2">
  <input id="zipcode2" value="zipcode2">
</p>
<p>
  <input id="tripcode3" value="">
  <input id="zipcode3" value="">
</p>
<p>
  <input id="tripcode4" value="">
  <input id="zipcode4" value="">
</p>
<p>
  <input id="tripcode5" value="">
  <input id="zipcode5" value="">
</p>
<a href="javascript:validateTripID();">Submit</a>
<script>
  function validateTripID() {
    var tripcode1 = document.getElementById("tripcode1").value;
    var zipcode1 = document.getElementById("zipcode1").value;
    var tripcode2 = document.getElementById("tripcode2").value;
    var zipcode2 = document.getElementById("zipcode2").value;
    var tripcode3 = document.getElementById("tripcode3").value;
    var zipcode3 = document.getElementById("zipcode3").value;
    var tripcode4 = document.getElementById("tripcode4").value;
    var zipcode4 = document.getElementById("zipcode4").value;
    var tripcode5 = document.getElementById("tripcode5").value;
    var zipcode5 = document.getElementById("zipcode5").value;
    var tripIDArray = [
      [tripcode1,zipcode1],
      [tripcode2,zipcode2],
      [tripcode3,zipcode3],
      [tripcode4,zipcode4],
      [tripcode5,zipcode5]
    ];
    var tripArrayLength = tripIDArray.length;
    var Z = 0;
    for (var i=0; i < tripArrayLength; i++) {
      var a = tripIDArray[Z][0];
      for  (var k=0 ; k < tripArrayLength; K++) {
        var b = tripIDArray[k][0];
        k++;
        if (a === b) {
            alert(a);
        }
      }
      Z = Z+1;
    }
  }
</script>

函数validateTripID(){ var tripcode1=document.getElementById(“tripcode1”).value; var zipcode1=document.getElementById(“zipcode1”).value; var tripcode2=document.getElementById(“tripcode2”).value; var zipcode2=document.getElementById(“zipcode2”).value; var tripcode3=document.getElementById(“tripcode3”).value; var zipcode3=document.getElementById(“zipcode3”).value; var tripcode4=document.getElementById(“tripcode4”).value; var zipcode4=document.getElementById(“zipcode4”).value; var tripcode5=document.getElementById(“tripcode5”).value; var zipcode5=document.getElementById(“zipcode5”).value; 变量Tripidaray=[ [tripcode1,zipcode1], [tripcode2,zipcode2], [tripcode3,zipcode3], [tripcode4,zipcode4], [tripcode5,zipcode5] ]; var tripArrayLength=tripIDArray.length; var Z=0; 对于(var i=0;i
给你!请参阅JSFIDLE链接


函数validateTripID(){ var tripcode1=document.getElementById(“tripcode1”).value; var zipcode1=document.getElementById(“zipcode1”).value; var tripcode2=document.getElementById(“tripcode2”).value; var zipcode2=document.getElementById(“zipcode2”).value; 变量Tripidaray=[ [tripcode1,zipcode1], [tripcode2,zipcode2] ]; var tripArrayLength=tripIDArray.length; var Z=0; 对于(var i=0;i
我没有完全得到您想要的,但请检查以下内容:

如果要检查邮政编码,只需更改以下内容:

// change this var a = tripIDArray[i] to 
var a = tripIDArray[i];
...
var b = tripIDArray[k];
...
//change if statement to 
if (a[0]===b[0] && a[1]===b[1]) ...

我已经更新了你的提琴以找到重复的tripcode条目。根据你的解释,我想这就是你想做的

function validateTripID() {
    var tripcode1 = document.getElementById("tripcode1");
    var zipcode1 = document.getElementById("zipcode1");
    var tripcode2 = document.getElementById("tripcode2");
    var zipcode2 = document.getElementById("zipcode2");
    var tripcode3 = document.getElementById("tripcode3");
    var zipcode3 = document.getElementById("zipcode3");
    var tripcode4 = document.getElementById("tripcode4");
    var zipcode4 = document.getElementById("zipcode4");
    var tripcode5 = document.getElementById("tripcode5");
    var zipcode5 = document.getElementById("zipcode5");
    var tripcodes = [tripcode1, tripcode2, tripcode3, tripcode4, tripcode5];
    var zipcodes = [zipcode1, zipcode2, zipcode3, zipcode4, zipcode5];
    var tripIDArray = [
      [tripcodes[0].value, zipcodes[0].value],
      [tripcodes[1].value, zipcodes[1].value],
      [tripcodes[2].value, zipcodes[2].value],
      [tripcodes[3].value, zipcodes[3].value],
      [tripcodes[4].value, zipcodes[4].value]
    ];
    var tripArrayLength = tripIDArray.length;
    for (var i = 0; i < tripArrayLength; i++) {
      for(var j = i+1; j < tripArrayLength; j++){
        if(tripIDArray[i][0] == tripIDArray[j][0]){
            tripcodes[i].className += "error";
            alert("tripcode "+tripIDArray[i][0]+" already entered at highlighted field!");
    }
  }
}
函数validateTripID(){
var tripcode1=document.getElementById(“tripcode1”);
var zipcode1=document.getElementById(“zipcode1”);
var tripcode2=document.getElementById(“tripcode2”);
var zipcode2=document.getElementById(“zipcode2”);
var tripcode3=document.getElementById(“tripcode3”);
var zipcode3=document.getElementById(“zipcode3”);
var tripcode4=document.getElementById(“tripcode4”);
var zipcode4=document.getElementById(“zipcode4”);
var tripcode5=document.getElementById(“tripcode5”);
var zipcode5=document.getElementById(“zipcode5”);
变量tripcodes=[tripcode1、tripcode2、tripcode3、tripcode4、tripcode5];
变量zipcodes=[zipcode1,zipcode2,zipcode3,zipcode4,zipcode5];
变量Tripidaray=[
[tripcodes[0]。值,zipcodes[0]。值],
[tripcodes[1]。值,zipcodes[1]。值],
[tripcodes[2]。值,zipcodes[2]。值],
[tripcodes[3]。值,zipcodes[3]。值],
[tripcodes[4]。值,zipcodes[4]。值]
];
var tripArrayLength=tripIDArray.length;
对于(var i=0;i
}


工作提琴:

我不清楚您想要什么?如果用户输入相同的旅行id两次,我想提醒他您只想检测重复的旅行码,还是还想查找重复的旅行码?
function validateTripID() {
    var tripcode1 = document.getElementById("tripcode1");
    var zipcode1 = document.getElementById("zipcode1");
    var tripcode2 = document.getElementById("tripcode2");
    var zipcode2 = document.getElementById("zipcode2");
    var tripcode3 = document.getElementById("tripcode3");
    var zipcode3 = document.getElementById("zipcode3");
    var tripcode4 = document.getElementById("tripcode4");
    var zipcode4 = document.getElementById("zipcode4");
    var tripcode5 = document.getElementById("tripcode5");
    var zipcode5 = document.getElementById("zipcode5");
    var tripcodes = [tripcode1, tripcode2, tripcode3, tripcode4, tripcode5];
    var zipcodes = [zipcode1, zipcode2, zipcode3, zipcode4, zipcode5];
    var tripIDArray = [
      [tripcodes[0].value, zipcodes[0].value],
      [tripcodes[1].value, zipcodes[1].value],
      [tripcodes[2].value, zipcodes[2].value],
      [tripcodes[3].value, zipcodes[3].value],
      [tripcodes[4].value, zipcodes[4].value]
    ];
    var tripArrayLength = tripIDArray.length;
    for (var i = 0; i < tripArrayLength; i++) {
      for(var j = i+1; j < tripArrayLength; j++){
        if(tripIDArray[i][0] == tripIDArray[j][0]){
            tripcodes[i].className += "error";
            alert("tripcode "+tripIDArray[i][0]+" already entered at highlighted field!");
    }
  }
}