Javascript 变量不';t似乎正在接受新的价值观 函数重读(整数){ //处理输入错误 var数组=[]; //通过使其等于1来初始化乘法 var乘=1; var计数=0; if(整数9)返回reachOne(乘法+计数); 返回计数; } 控制台日志(reachOne(254))您的integer参数看起来应该是一个数字,但for循环将其视为一个字符串。因此integer.length将是未定义的,因此for循环将永远不会发生。 var test = 254; test = test.toString(); // you need to convert test to a string var result = 1; for (var x = 0; test.length > x; x++) { result *= test[x]; }

Javascript 变量不';t似乎正在接受新的价值观 函数重读(整数){ //处理输入错误 var数组=[]; //通过使其等于1来初始化乘法 var乘=1; var计数=0; if(整数9)返回reachOne(乘法+计数); 返回计数; } 控制台日志(reachOne(254))您的integer参数看起来应该是一个数字,但for循环将其视为一个字符串。因此integer.length将是未定义的,因此for循环将永远不会发生。 var test = 254; test = test.toString(); // you need to convert test to a string var result = 1; for (var x = 0; test.length > x; x++) { result *= test[x]; },javascript,arrays,loops,do-while,Javascript,Arrays,Loops,Do While,上面的代码应该取一个正整数,并返回该整数中的数字必须相乘才能得到一位数字的次数。示例:254将给出2:2*5*4=40和4*0=0。您需要首先将变量转换为字符串 function reachOne(integer) { //deal with errors in input var array = []; //initialize multiply by putting it equal to 1 var multiply = 1;

上面的代码应该取一个正整数,并返回该整数中的数字必须相乘才能得到一位数字的次数。示例:254将给出2:2*5*4=40和4*0=0。您需要首先将变量转换为字符串

  function reachOne(integer) {
      //deal with errors in input
      var array = [];
      //initialize multiply by putting it equal to 1
      var multiply = 1;
      var count = 0;

      if (integer < 0) {
          document.write('Do it again, Input should be a positive Integer')
      } else if (integer < 10 && integer >= 0) {
          document.write(count);
      } else {

          do {
              for (var i = 0; i < integer.length; i++) {
                  multiply = multiply * integer.charAt(i);
                  //if i try to write document.write(multiply), nothing appears
                  console.log("HELLO");
              }
              count++
          }

          while (multiply >= 10)



      }
      //if I write document.write(multiply) here, the result is 1 and not the product of all the numbers
  }
  reachSingle(254)        

    ----------
结果是40

这应该做到:

函数reachOne(整数,计数){
if(isNaN(整数)|整数<1)返回0;
var乘=1;
如果(isNaN(计数))计数=1;
而(整数>0){
乘法=乘法*(整数%10);
整数=数学楼层(整数/10);
}
如果(乘法>9)返回reachOne(乘法+计数);
返回计数;
}

控制台日志(reachOne(254))
您的
integer
参数看起来应该是一个数字,但
for
循环将其视为一个字符串。因此
integer.length
将是
未定义的
,因此
for
循环将永远不会发生。
var test = 254;
test = test.toString(); // you need to convert test to a string
var result = 1;
for (var x = 0; test.length > x; x++) {
    result *= test[x]; 
}