递归函数的返回值为 'undefined'



每当我执行这个片段时,console.log在返回之前返回值为23的20倍的数组。但是console.log(Check(users,0,20));仅返回"undefined"。

我做错了什么?

var users = [23, 23, 23, 23, 23, 23, 23, 23, 23, 23];
console.log(Check(users, 0, 20));
function Check(ids, counter, limit){
    ids.push(23);
    // Recursion
    if (counter+1 < limit){
        Check(ids, counter+1, limit);
    }
    else {
        console.log(ids);
        return ids;
    }
}

您忘记从输入recosrion的点返回结果。

var users = [23, 23, 23, 23, 23, 23, 23, 23, 23, 23];
console.log(Check(users, 0, 20));
function Check(ids, counter, limit){
    ids.push(23);
    // Recursion
    if (counter+1 < limit){
        return Check(ids, counter+1, limit); // return here!
    }
    else {
        console.log(ids);
        return ids;
    }
} 

但返回值似乎毫无用处,因为"您的函数也会更改初始数组"。

最新更新