Javascript 函数内的重叠循环
在代码战中,我正在接受乘法逆的项目训练。例如,目标是——如果输入是“39”,那么输出应该是“4”[39=3*9=>27=2*7=>14=1*4=>4]。 我编写了一些代码,只将输入乘以第一级(39=>27) 我的代码到现在为止Javascript 函数内的重叠循环,javascript,arrays,function,loops,Javascript,Arrays,Function,Loops,在代码战中,我正在接受乘法逆的项目训练。例如,目标是——如果输入是“39”,那么输出应该是“4”[39=3*9=>27=2*7=>14=1*4=>4]。 我编写了一些代码,只将输入乘以第一级(39=>27) 我的代码到现在为止 function persistence(num) { var digits = new Array(); digits = num.toString().split("").map(Number); var res = 1; for (i = 0; i < di
function persistence(num) {
var digits = new Array();
digits = num.toString().split("").map(Number);
var res = 1;
for (i = 0; i < digits.length; i++) { res = res * digits[i]; }
return res;
console.log(persistence(digits));
}
函数持久性(num){
var digits=新数组();
digits=num.toString().split(“”).map(数字);
var-res=1;
对于(i=0;i
我只是在学习javascript,我被困在这里了。我需要循环这个过程,直到得到一个位数
有人能帮我吗?
如果我的问题不清楚,很抱歉…数组方法是您的朋友。在这种情况下,使用
map
和reduce
:
函数多数字(num){
如果(num<10)返回num;
console.log(num);
常数乘以=字符串(num)
.拆分(“”)
.地图(编号)
.减少((a,n)=>a*n,1);
返回多数字(乘以);
}
控制台日志(多数字(39))代码>数组方法是您的朋友。在这种情况下,使用map
和reduce
:
函数多数字(num){
如果(num<10)返回num;
console.log(num);
常数乘以=字符串(num)
.拆分(“”)
.地图(编号)
.减少((a,n)=>a*n,1);
返回多数字(乘以);
}
控制台日志(多数字(39))代码>除了格式化之外,这与您的代码非常相似。我评论了仅有的两个变化:
函数持久性(num){
var digits=新数组();
digits=num.toString().split(“”).map(数字);
//1)添加此if语句以返回结果
//如果只有一个数字,则立即。
如果(位数.length==1)
返回数字[0];
var-res=1;
对于(i=0;i console.log(persistence('39'))代码>除了格式化之外,这与您的代码非常相似。我评论了仅有的两个变化:
函数持久性(num){
var digits=新数组();
digits=num.toString().split(“”).map(数字);
//1)添加此if语句以返回结果
//如果只有一个数字,则立即。
如果(位数.length==1)
返回数字[0];
var-res=1;
对于(i=0;i console.log(persistence('39'))代码>你只需要一个while循环来包装这个方法,你可以保持你的代码的原样,让你的return语句像这样returnnum<10?num:持久性(res)代码>。您的函数仍将运行,但不会错过它所花费的一秒钟。您只需要一个while循环来包装此方法您可以保持代码的原样,并按照下面的方式创建return语句return num<10?num:持久性(res)代码>。您的函数仍将运行,但不会错过它所需的那一秒。