Return value of recursive function is 'undefined'

后端 未结 1 1535
旧巷少年郎
旧巷少年郎 2020-11-30 09:55

Whenever I execute this snippet the console.log before return returns the array with 20 times the value 23. However console.log(Check(users, 0, 20)); returns only \'undefine

相关标签:
1条回答
  • 2020-11-30 10:34

    You forgot to return a result from the point, where you entering recusrion.

    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;
        }
    } 
    

    But return value seems useless, cause' your function altering initial array as well.

    0 讨论(0)
提交回复
热议问题