为什么明明res数组中是有值的但是长度为0呢?
var backTracking = function (nums, res, allRes, used) {
if (res.length === nums.length) {
console.log(res);
allRes.push(res);
return;
}
for (let i = 0; i < nums.length; i++) {
if (used[i]) {
continue;
}
res.push(nums[i]);
used[i] = true;
backTracking(nums, res, allRes, used);
res.pop(nums[i]);
used[i] = false;
}
};
let res = [],
allRes = [],
used = [],
nums = [1, 2, 3];
for (let i = 0; i < used.length; i++) {
used[i] = false;
}
backTracking(nums, res, allRes, used);
console.log(allRes);
那是因为console.log()打印时是有值的,值就是黑色字体显示的部分。
而紫红色显示的部分是系统取出来所打印变量的真实内容(icon图标i 鼠标放上去显示的是刚刚估算出来的值)。
因为你这段代码,在打印后,随即下面的代码就改变了该变量的值。
打印 length也是0吗
这里面的应该是没有值的吧
你的下面重置了res = [], 您觉得会有值么,
代码执行顺序的问题 前后调整一下