为什么此代码返回未定义?

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"]));