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