allsort 函数中单步输出的结果正确,findSubstring 输出函数结果错误,是什么原因呢?

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

阅读 3.8k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题