JSFiddle - React, Tailwind, and code Playground

JavaScript

var combine = function(n, k) {

    function backtracking(n, k) {
        if(k){  // min(k)=1, when k=0 break
            for(var i=1; i<=n; ++i){
                if(!used[i]){
                    used[i] = true;
                    solution[k-1] = i;  // solution.length=k
                    // console.log(solution.length);
                    arguments.callee(n, k-1);
                    used[i] = false;
                }
            }
        }else{
            console.log(solution);
            return result.push(solution.slice(0));    // ?
        }
    }

    var used = [],
        result = [],
        solution = [];
    if(k>n){
        return [];
    }else{
        backtracking(n, k);
    }

    return result;
};

var b = combine(4, 2);
console.log(b);