Javascript 如何制作个位数?

Javascript 如何制作个位数?,javascript,while-loop,Javascript,While Loop,像那样。。我如何设置??或者,我的方向是对的?您可以使用递归继续,直到总数等于0 例如 功能数字(num){ const nums=num.toString()。 分割('')。地图(编号); const total=nums.reduce( (a,v)=>a*v); console.log( nums.join('*')+ “=>”+总计); 如果(总数>9) 位数(总数); } 数字(786)您可以使用递归继续,直到总数等于0 例如 功能数字(num){ const nums=num.t

像那样。。我如何设置??或者,我的方向是对的?

您可以使用递归继续,直到总数等于0

例如

功能数字(num){
const nums=num.toString()。
分割('')。地图(编号);
const total=nums.reduce(
(a,v)=>a*v);
console.log(
nums.join('*')+
“=>”+总计);
如果(总数>9)
位数(总数);
}

数字(786)您可以使用递归继续,直到总数等于0

例如

功能数字(num){
const nums=num.toString()。
分割('')。地图(编号);
const total=nums.reduce(
(a,v)=>a*v);
console.log(
nums.join('*')+
“=>”+总计);
如果(总数>9)
位数(总数);
}

数字(786)我不知道你为什么要在这里使用字符串。您可以执行以下操作:

函数单位数(num){

如果(num我不确定为什么必须在这里使用字符串。您可以执行以下操作:

函数单位数(num){

if(num使用递归。该函数可以非常简单地使用a来计算乘积

const singleDigit=num=>{
常量nums=[…`${num}`];
常数乘积=数值减少((acc,val)=>acc*+val,1);
log(`${nums.join(“*”)}->${product}`);

返回乘积使用递归。使用a来计算乘积,函数可能非常简单

const singleDigit=num=>{
常量nums=[…`${num}`];
常数乘积=数值减少((acc,val)=>acc*+val,1);
log(`${nums.join(“*”)}->${product}`);

返回产品您应该使用递归策略

函数单位数(num){
如果(parseInt(num/10)>0){
设t=1;
while(num>0){
t*=num%10;
num=parseInt(num/10);
}
控制台日志(t);
单位数(t);
}
}

单位数(786);
您应该使用递归策略

函数单位数(num){
如果(parseInt(num/10)>0){
设t=1;
while(num>0){
t*=num%10;
num=parseInt(num/10);
}
控制台日志(t);
单位数(t);
}
}

单位数(786);
“我的方向是正确的?”-这将是一个“否”,因为您的脚本不工作。请看一看,然后添加一个,解释您的代码存在的问题(最好是示例输入和输出),并添加您在控制台中看到的任何错误消息。“我的方向是正确的?”-这将是一个“否”,因为您的脚本无法工作。请查看并添加一个,解释您的代码中存在的问题(最好使用示例输入和输出)并添加您在控制台中看到的任何错误消息。函数的最终结果不必是0。它可以是任何一位数字。这意味着每当乘法结果小于10时,我们都应该返回该结果。@sabbir.alam很好,更改了条件。@Keith Ohhh我不认为递归哈哈;;多亏了您的favor、 你给了我一个主意,我要学习:)函数的最终结果不必是0。它可以是任何一位数字。这意味着每当乘法结果小于10时,我们都应该返回该结果。@sabbir.alam很好,改变了条件。@Keith Ohhh我不认为递归哈哈;;多亏了你的帮助。你给了我一个主意,我会学习:)ohh reducer..这是一个有趣的解决方案!非常感谢!ohh reducer..这是一个有趣的解决方案!非常感谢!事实上,字符串可以计算“长度”,所以我这样想..你的代码非常有趣..没有num的长度..事实上,字符串可以计算“长度”,所以我这样想..你的代码非常有趣..没有num的长度..是的!我会的!我同意是的!我会的!我同意
function SingleDigits(num) {

function makeDigits(num) {
    let value = 1 
    let arr = String(num) 
    for(let i = 0 ; i < arr.length; i++){
      value = value * Number(arr[i]) 
    }
      return value;
}
value += "";
while(1>=value.length){
  let result = 1;
  result = result 
}
num = 786

7 * 8 * 6 -> 336
3 * 3 * 6 -> 54
5 * 4 -> 20
2 * 0 -> 0