这是解决Eloquent Javascript challenge in Chapter 4 A List的部分尝试。 theArray返回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));
答案 0 :(得分:3)
您必须返回递归调用
if(list.rest !== undefined) {
return listToArray(list.rest);
如果不返回递归调用,则不会返回来自最终函数堆栈的array
,而是返回undefined
。