我是JavaScript新手。我不知道为什么我的代码不起作用。我正在创建用于返回卡堆栈数量的函数。用户将输入卡堆叠数量。然后,将使用以下规则重新混合纸牌。但是结果没有出现。您能否帮助调试此代码。

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Functions</h1>

<p id="demo"></p>

<script>
var reposition = [];
function Reverse(userinput){
var array = new Array(userinput);
var trueform = new Array(userinput);

for(var i=0; i<userinput; i++){
   array[i] = i + 1;
   trueform[i] = i + 1;
}

while(! (isEqual(trueform,reposition))){
 for(var ii=0; ii<userinput; ii++){
  reposition[userinput-ii-1] = array[ii];
  if((ii+1) != userinput){
   swap((ii+1));
  }
 }
 for(var iii=0; iii<reposition.length; iii++){
  array[iii] = reposition[iii];
 }
 count +=1;
}
return count;
}

function swap(n){
 var temp = array[n];
 for(var iiii=n; iiii<array.length-1; iiii++){
  array[iiii] = array[iiii+1];
 }
 array[array.length-1]= temp;
}

function isEqual(t, r){
  for(var iiiii=0; iiiii<t.length; iiiii++){
   if(t[iiiii] != r[iiiii]){
    return false;
   }
  }
  return true;
}
document.getElementById("demo").innerHTML = Reverse(4);
</script>

</body>
</html>

最佳答案

我注意到的第一件事是未定义变量数组。这是因为您试图在单独的功能中使用它。

this.array instead of var array

我注意到的第二件事是,在while循环中,您正在做count + = 1,这在代码的任何地方都没有定义。

关于javascript - 卡堆栈功能不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40404219/

10-12 13:31