javascript - 为什么这段代码返回未定义?

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

最佳答案

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());

关于javascript - 为什么这段代码返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36841389/

相关文章:

javascript - Promise.all 与 Promise 链中的 x => Promise.all(x) 有什么区别?

javascript - 如何在谷歌地图中拥有多个数据层?

C# Array.Reverse 反转按值传递给方法的原始数组

javascript - 正则表达式匹配 n 次出现后的每次出现

javascript - 遍历 Ember.js promise

list - F#:递归函数:连接 2 个具有公共(public)元素的列表

c# - 为什么我在控制台中得到问号而不是 double 值/NaN,这是什么意思?

php - 如何从 php 中的平面结构有效地构建树?

c# - 以相反的顺序将数组值传递给另一个数组