咖喱盖饭真的香 2021-10-12 11:40 采纳率: 100%
浏览 257
已结题

js数组中有值但是长度为0

为什么明明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);

img

  • 写回答

4条回答 默认 最新

  • 凌风游 2021-10-12 13:32
    关注

    那是因为console.log()打印时是有值的,值就是黑色字体显示的部分。
    而紫红色显示的部分是系统取出来所打印变量的真实内容(icon图标i 鼠标放上去显示的是刚刚估算出来的值)。
    因为你这段代码,在打印后,随即下面的代码就改变了该变量的值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 10月12日