为什么我在 if 中的比较不起作用?答案应该是 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;
}
Fiddle
Tôi là một lập trình viên xuất sắc, rất giỏi!