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

发布于 2022-09-02 11:06:48 字数 503 浏览 7 评论 0

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的空数组,求诸位大神给解答一下,是什么原因造成的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

月野兔 2022-09-09 11:06:48

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文