Javascript:减少到一个数字
Javascript: reducing down to one number
所以我需要取一个日期,并通过将每个数字相加将其转换为一个数字,当总和超过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;
};
solution("2000, December 5");
您可以使用一个递归函数调用
function numReduce(numArr){
//Just outputting to div for demostration
document.getElementById("log").insertAdjacentHTML("beforeend","Reducing: "+numArr.join(","));
//Using the array's reduce method to add up each number
var total = numArr.reduce(function(a,b){return (+a)+(+b);});
//Just outputting to div for demostration
document.getElementById("log").insertAdjacentHTML("beforeend",": Total: "+total+"<br>");
if(total >= 10){
//Recursive call to numReduce if needed,
//convert the number to a string and then split so
//we will have an array of numbers
return numReduce((""+total).split(""));
}
return total;
}
function reduceDate(dateStr){
var arrayDate = new Date(dateStr);
var d = arrayDate.getDate();
var m = arrayDate.getMonth();
var y = arrayDate.getFullYear();
return numReduce([d,m+1,y]);
}
alert( reduceDate("2000, December 5") );
<div id="log"></div>
如果这是您的最终代码,那么您的函数不会输出任何内容。试试这个:
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"));
它将在对话框中提醒结果。
相关文章:
- 递增一个数字而不去掉前导零
- 制作一个regex来验证只有一个数字的字符串
- 如何使用至少一个数字、一个大写字母和6-20个字符验证密码
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- 我如何解析二's是一个数字的补码字符串
- 为什么我需要在这里输入var,为什么它会给我一个数字作为答案?(Javascript)
- 为什么 JavaScript 如果一个数字有一个前导零,就将其视为八进制
- 增加一个数字并将其附加到函数
- 如何让计算机猜测一个数字并返回猜测次数(Javascript)
- 正则表达式删除最后一个数字之后的字符串
- 用户在文本框中输入一个数字,并根据使用 PHP 输入的数字重定向到另一个网页
- 每次使用 Javascript 加载页面时增加一个数字(变量)的简单方法
- Javascript Regexp :如果一个字母与一个数字相邻,请添加下划线
- jQuery UI Slider ui.value 获取最后一个数字
- JavaScript 使用多少位来表示一个数字
- Javascript提示和警报输入一个数字,它将循环,您将输入数字以获得它的平均值
- RXJS 为什么只有最后一个数字同时有 a 和 b
- 检查字符串是否等于一个单词和一个数字
- 对负指数调用的.toFixed()返回一个数字,而不是字符串
- 脚本每天添加相同的数字,月底再添加一个数字