此变量是一个数组.为什么它返回未定义

This variable is an array. Why is it returning undefined?

本文关键字:为什么 数组 返回 未定义 一个 变量      更新时间:2023-09-26

这是解决第4章"列表"中Eloquent Javascript挑战的部分尝试。数组返回undefined,但如果我只是打印它的值,它就是我所期望的(值的数组)。为什么它返回undefined?

var obj = {"value":"C","rest":{"value":"B","rest":{"value":"A"}}};
var theArray =[];
var listToArray = function(list) {
  theArray.push(list.value);
    if(list.rest !== undefined) {
      listToArray(list.rest);
    } else return theArray; //console.log(theArray); returns the expected value
}
console.log(listToArray(obj));

您必须返回递归调用

 if(list.rest !== undefined) {
      return listToArray(list.rest);

演示

如果不返回递归调用,则不会返回来自最终函数堆栈的array,而是返回undefined