为什么这段代码返回undefined?

时间:2016-04-25 13:01:40

标签: javascript recursion array-reverse

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。提前谢谢。

2 个答案:

答案 0 :(得分:1)

  

虽然rarr的调试值最后是['C','B','A'],而是它   正在返回未定义的

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

替换

reverseArray(arr);

return reverseArray(arr);

或者只是

console.log(["A", "B", "C"].reverse());

答案 1 :(得分:1)

你忘了你的回复...试试这个:

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"]));
相关问题