首页 > js 回溯法生成数组的全部组合

js 回溯法生成数组的全部组合

var findSubstring = function() {
    var rlt = [], path = [];
    allSort([1,2,3], rlt, path, 0, 3);
    //console.log(rlt);
};

var allSort = function(arr, rlt, path, k, l) {
    if (k == l) {
        rlt.push(path);
        return;
    }
    for (var i = 0; i < l ; i++) {
        path.push(arr[i]);
        allSort(arr, rlt, path, k+1, l);
        path.pop();
    }
}
findSubstring();

在allsort函数中单步输出的结果是正确的,但是在findSubstring输出函数的结果为27个长度为0的空数组,求诸位大神给解答一下,是什么原因造成的。


数组是引用,所以每一个rlt push的都是同一个对象。用arr.slice解决

【热门文章】
【热门文章】