将我的输出定义为undefined。任何人都可以帮助我..?

时间:2017-12-19 10:39:15

标签: javascript

接受正参数num的函数并返回其乘法持久性,这是必须将num中的数字乘以它到达单个数字的次数。

var persistenceCount = 0;

function persistence(num) {
  var arr = _parseToNumericArray(num);
  if (_checkLength(arr)) {
    return persistenceCount;
  } else {
    persistenceCount++;
    var newNum = _getMultiple(arr);
    persistence(newNum);
  }

}

function _parseToNumericArray(num) {
  var n = num.toString().split("");
  return n.map(function(elem) {
    return parseInt(elem);
  });
}

function _checkLength(arr) {
  return arr.length === 1;
}

function _getMultiple(arr) {
  return arr.reduce(function(a, b) {
    return a * b;
  });
}

console.log(persistence(39)); // Getting output as undefined

2 个答案:

答案 0 :(得分:2)

就像 @Keith 所说,你忘记了返回值。

var persistenceCount = 0;

function persistence(num) {
  var arr = _parseToNumericArray(num);
  if (_checkLength(arr)) {
    return persistenceCount;
  } else {
    persistenceCount++;
    var newNum = _getMultiple(arr);
    return persistence(newNum);
  }
}

function _parseToNumericArray(num) {
  var n = num.toString().split("");
  return n.map(function(elem) {
    return parseInt(elem);
  });
}

function _checkLength(arr) {
  return arr.length === 1;
}

function _getMultiple(arr) {
  return arr.reduce(function(a, b) {
    return a * b;
  });
}

console.log(persistence(39)); // Outputs 3

答案 1 :(得分:0)

其他地方没有退货声明。所以返回undefined。

默认情况下,在JavaScript中,如果没有返回任何内容,函数总是返回undefined。