gpt4 book ai didi

javascript - 为什么 console.log 会错误地打印一个空数组?

转载 作者:行者123 更新时间:2023-11-30 07:04:59 25 4
gpt4 key购买 nike

我使用 Firefox。

此代码记录 []

var log = console.log;

function new_comb(aComb) {
var res = [];
log(aComb); // <- This is the line
for (var p in aComb) {
var peg = aComb[p];
var current = peg[peg.length - 1];
for (var i = 0; i < aComb.length; i++) {
if (i == p) continue;
if (current > aComb[i][aComb[i].length - 1]) continue;
var tmp = aComb.splice(0);
tmp[i].push(current);
tmp[p].pop();
res.push(tmp);
}
}
return res;
}

var comb = [
[3, 1],
[9, 2],
[15, 0]];
var res = new_comb(comb);

此代码记录了正确的值。

var log = console.log;

function new_comb(aComb) {
var res = [];
log(aComb); // <- This is the line
// note that I comment this out.
/*for (var p in aComb) {
var peg = aComb[p];
var current = peg[peg.length - 1];
for (var i = 0; i < aComb.length; i++) {
if (i == p) continue;
if (current > aComb[i][aComb[i].length - 1]) continue;
var tmp = aComb.splice(0);
tmp[i].push(current);
tmp[p].pop();
res.push(tmp);
}
}*/
return res;
}

var comb = [
[3, 1],
[9, 2],
[15, 0]];
var res = new_comb(comb);

为什么会这样?

最佳答案

console.log 显示实时数据,而不是您运行时对象的快照。

由于您拼接数组中的所有数据,所以它几乎在您记录它时就为空。

如果您想记录数组的快照,则对数组进行字符串化或深度复制。

关于javascript - 为什么 console.log 会错误地打印一个空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18230818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com