0
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'] ,但它返回未定义。提前致谢。

4

2 回答 2

1

虽然 rarr 的调试值最后是 ['C','B','A'] ,但它返回的是 undefined

您没有返回递归调用将返回的值

代替

reverseArray(arr);

return reverseArray(arr);

或者干脆

console.log(["A", "B", "C"].reverse());
于 2016-04-25T13:03:21.830 回答
1

你忘记在你的 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"]));
于 2016-04-25T13:04:11.187 回答