【发布时间】:2016-09-24 22:51:06
【问题描述】:
我在 LeetCode 上遇到问题,由于某种原因,我的函数一直返回未定义。我基本上只是运行一个递归函数,然后跟踪结果,并最终在变量 endRes 中的 main 函数中返回它们。
/**
* @param {number[]} nums
* @return {string}
*/
function recursion(arr, str) {
var result = str;
if (arr.length <= 1) {
result+=arr[0];
return result;
}
arr.sort(function(a, b){return b-a});
var n = arr[0];
var power = Math.floor(Math.log(n)/Math.LN10);
for (var i=1; i<arr.length; i++) {
var index;
if (arr[i]>(arr[0]/(Math.pow(10, power))) && Math.floor(Math.log(arr[i])/Math.LN10) < power) {
result+=arr[i].toString();
arr.splice(i,1);
recursion(arr, result);
}
if (i==arr.length-1){
result+=arr[0].toString();
arr.splice(0,1);
recursion(arr, result);
}
}
}
var largestNumber = function(nums) {
endRes = recursion(nums, "");
return endRes;
};
【问题讨论】:
-
您没有返回递归函数。即
recursion(arr, result);应该是return recursion(arr, result); -
当萌!就是这样。我能问你为什么不能只调用函数吗?为什么你需要那里的回报? (对不起,我是新人)。
-
Javascript 没有像 ruby 那样的隐式返回。您必须明确声明它们。
标签: javascript