JavaScript comparison

JavaScript comparison

本文关键字:comparison JavaScript      更新时间:2023-09-26

为什么我的比较不工作?答案应该是8,但它返回0。

function findMissing(missingArray){
     var getArray = missingArray.sort();
     var myArray = [0,1,2,3,4,5,6,7,8,9]; 
       for(var i=0 ; i< myArray.length ; i++){
         for(var j=0 ; j< getArray.length ; j++){
            if(myArray[i] != getArray[j]){
                  return i;
          }
      }
   }
}
findMissing([0,3,4,5,7,2,9,1,6]); 

您可以简单地使用1个循环和数组搜索来查找缺失的元素。循环遍历两个数组,每次都会更改索引,因此比较无效。

没有过分装饰

 function findMissing(missingArray){
     var getArray = missingArray.sort();
     var myArray = [0,1,2,3,4,5,6,7,8,9]; 
       for(var i=0 ; i< myArray.length ; i++){
         if(getArray.indexOf(myArray[i])==-1)
            return i;
      }
  }
alert(findMissing([0,3,4,5,7,2,9,1,6]));     //8

编辑,附加版本实际上,您可以创建一个包含所有缺失元素的数组,而不仅仅是一个。这很好

 function findMissing(missingArray){
     var getArray = missingArray.sort();
     var myArray = [0,1,2,3,4,5,6,7,8,9]; 
     var returnArray=[];
       for(var i=0 ; i< myArray.length ; i++){
         if(getArray.indexOf(myArray[i])==-1)
             returnArray.push(myArray[i]);
      }
  return returnArray;
}

小提琴

  function findMissing(missingArray){
     var getArray = missingArray.sort();
     var myArray = [0,1,2,3,4,5,6,7,8,9]; 
       for(var i=0 ; i< myArray.length ; i++){
            if(myArray[i] != getArray[i]){
                  return i;          
      }
   }
}
alert(findMissing([0,3,4,5,7,2,9,1,6]));

i=0j=1myArray[0]=0getArray=3不相等时,则

中的条件
myArray[i] != getArray[j]

求值为真,函数返回i0