为什么此代码返回未定义?
Why this code is returning undefined?
var rarr = [];
var reverseArray = function(arr) {
if(arr[0]) {
rarr.push(arr[arr.length-1]);
arr.pop();
reverseArray(arr);
} else {
return rarr;
}
}
console.log(reverseArray(["A", "B", "C"]));
虽然最后 rarr 的调试值是 ['C','B','A'],但它返回的是 undefined。提前致谢。
While debugging value of rarr is ['C','B','A'] at the end, instead it
is returning undefined
您没有返回将由递归调用返回的值
替换
reverseArray(arr);
和
return reverseArray(arr);
或者干脆
console.log(["A", "B", "C"].reverse());
您在 if 中忘记了 return 试试这个:
var rarr = [];
var reverseArray = function(arr) {
if(arr[0]) {
rarr.push(arr[arr.length-1]);
arr.pop();
return reverseArray(arr);
} else {
return rarr;
}
}
console.log(reverseArray(["A", "B", "C"]));
var rarr = [];
var reverseArray = function(arr) {
if(arr[0]) {
rarr.push(arr[arr.length-1]);
arr.pop();
reverseArray(arr);
} else {
return rarr;
}
}
console.log(reverseArray(["A", "B", "C"]));
虽然最后 rarr 的调试值是 ['C','B','A'],但它返回的是 undefined。提前致谢。
While debugging value of rarr is ['C','B','A'] at the end, instead it is returning undefined
您没有返回将由递归调用返回的值
替换
reverseArray(arr);
和
return reverseArray(arr);
或者干脆
console.log(["A", "B", "C"].reverse());
您在 if 中忘记了 return 试试这个:
var rarr = [];
var reverseArray = function(arr) {
if(arr[0]) {
rarr.push(arr[arr.length-1]);
arr.pop();
return reverseArray(arr);
} else {
return rarr;
}
}
console.log(reverseArray(["A", "B", "C"]));