0
私はLeetCodeで問題を抱えています。何らかの理由で私の関数は未定義のまま返しています。私は基本的には再帰関数を実行してから、結果を追跡し、最終的に変数endResのmain関数のhighestNumberに戻します。これが「未定義」を返す理由は何ですか?
/**
* @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);'は 'recursion(arr、result);になるはずです – shamsup
ダングブラ!それはそれだった。なぜあなたは単に関数を呼び出すことができないのですか?なぜあなたはそこに戻る必要がありますか? (私は新しいです申し訳ありません)。 – vercingortix
Javascriptにはrubyのような暗黙のリターンはありません。それらを明示的に宣言しなければなりません。 – shamsup