Javascript 无法使用递归返回值

Javascript 无法使用递归返回值,javascript,Javascript,我正在努力解决持久的问题卡塔。我已经编写了以下代码,但无法正确返回最终值。尽管它记录了正确的值。 我正在尝试使用递归 const persistence = num => { x = num.toString(); x = x.split(''); console.log(x); if (x.length === 1) { return parseInt(x.join()); // console.log(`num is ${x}`); // re

我正在努力解决持久的问题卡塔。我已经编写了以下代码,但无法正确返回最终值。尽管它记录了正确的值。 我正在尝试使用递归

const persistence = num => {
  x = num.toString();
  x = x.split('');
  console.log(x);

  if (x.length === 1) {
    return parseInt(x.join());
    // console.log(`num is ${x}`);
    // return x;
  }
  if (x.length > 1) {
    len = x.length;
    arr = [];
    for (i = 0; i < x.length; i++) {
      if (i === 0) {
        arr.push(x[i]);
      } else {
        arr.push(arr[0] * x[i]);
        arr.shift();
      }
      num = parseInt(arr.join());
    }
    persistence(num);
  }
};
const persistence=num=>{
x=数量toString();
x=x.分割(“”);
控制台日志(x);
如果(x.length==1){
返回parseInt(x.join());
//log(`num是${x}`);
//返回x;
}
如果(x.长度>1){
len=x.长度;
arr=[];
对于(i=0;i

我正在尝试返回最终值。

您需要在
持久化(num)之前添加
返回

const persistence=num=>{
x=数量toString();
x=x.分割(“”);
控制台日志(x);
如果(x.length==1){
返回parseInt(x.join());
//log(`num是${x}`);
//返回x;
}
如果(x.长度>1){
len=x.长度;
arr=[];
对于(i=0;i
const persistence = num => {
  x = num.toString();
  x = x.split('');
  console.log(x);

  if (x.length === 1) {
    return parseInt(x.join());
    // console.log(`num is ${x}`);
    // return x;
  }
  if (x.length > 1) {
    len = x.length;
    arr = [];
    for (i = 0; i < x.length; i++) {
      if (i === 0) {
        arr.push(x[i]);
      } else {
        arr.push(arr[0] * x[i]);
        arr.shift();
      }
      num = parseInt(arr.join());
    }
    return persistence(num);
  }
};