Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:减少到一个数字_Javascript_Arrays_Modulo - Fatal编程技术网

Javascript:减少到一个数字

Javascript:减少到一个数字,javascript,arrays,modulo,Javascript,Arrays,Modulo,所以我需要取一个日期,将每个数字相加,将其转换为一个数字,当总和超过10时,我需要将两个数字相加。对于下面的代码,我有12/5/2000,即12+5+2000=2017。所以2+0+1+7=10&1+0=1。我把它归结为一个数字,它在Firebug中工作(输出为1)。然而,它在我试图使用的编码测试环境中不起作用,所以我怀疑出了什么问题。我知道下面的代码是草率的,所以任何想法或帮助重新格式化代码都会很有帮助!(注意:我认为它必须是嵌入在函数中的函数,但尚未能够使其工作。) 如果这是您的最终代码,那

所以我需要取一个日期,将每个数字相加,将其转换为一个数字,当总和超过10时,我需要将两个数字相加。对于下面的代码,我有12/5/2000,即12+5+2000=2017。所以2+0+1+7=10&1+0=1。我把它归结为一个数字,它在Firebug中工作(输出为1)。然而,它在我试图使用的编码测试环境中不起作用,所以我怀疑出了什么问题。我知道下面的代码是草率的,所以任何想法或帮助重新格式化代码都会很有帮助!(注意:我认为它必须是嵌入在函数中的函数,但尚未能够使其工作。)


如果这是您的最终代码,那么您的函数不会输出任何内容。试试这个:

var array = [];
var total = 0;

    function solution(date) {
      var arrayDate = new Date(date);
      var d = arrayDate.getDate();
      var m = arrayDate.getMonth();
      var y = arrayDate.getFullYear();
      array.push(d,m+1,y);

        for(var i = array.length - 1; i >= 0; i--) {
          total += array[i];
        };
          if(total%9 == 0) {
            return 9;
          } else
            return total%9;    
    };

alert(solution("2000, December 5"));

它将在对话框中提示结果。

您只需使用递归函数调用即可

函数numReduce(nummarr){
//只是输出到div进行演示
document.getElementById(“log”).insertAdjacentHTML(“beforeed”,“reduced:”+numar.join(“,”));
//使用数组的reduce方法将每个数字相加
var-total=numar.reduce(函数(a,b){return(+a)+(+b);});
//只是输出到div进行演示
document.getElementById(“log”).insertAdjacentHTML(“beforeed”,”:Total:“+Total+”
”; 如果(总数>=10){ //如果需要,递归调用numReduce, //将数字转换为字符串,然后拆分为 //我们将有一个数字数组 返回numReduce((“”+总计)。拆分(“”); } 返回总数; } 函数简化(dateStr){ var arrayDate=新日期(dateStr); var d=arrayDate.getDate(); var m=arrayDate.getMonth(); var y=arrayDate.getFullYear(); 返回numReduce([d,m+1,y]); } 警报(减少(“2000年12月5日”)
var array = [];
var total = 0;

    function solution(date) {
      var arrayDate = new Date(date);
      var d = arrayDate.getDate();
      var m = arrayDate.getMonth();
      var y = arrayDate.getFullYear();
      array.push(d,m+1,y);

        for(var i = array.length - 1; i >= 0; i--) {
          total += array[i];
        };
          if(total%9 == 0) {
            return 9;
          } else
            return total%9;    
    };

alert(solution("2000, December 5"));