我在循环中将向量推入数组。 这是一段代码片段
var atoms = [];
for (var i=0; i<formulas.length; i++) {
for (var atom in formulas[i].data.atoms) {
if (atoms.indexOf(atom) < 0) {
atoms.push(atom);
}
}
}
var zeroMatrix = [];
for (var i=0; i<formulas.length; i++) {
var vector = atoms.map(function(item) {return formulas[i].data.atoms.hasOwnProperty(item) ? formulas[i].data.atoms[item] : 0});
vector.push(0);
console.log(vector);
console.log(zeroMatrix);
zeroMatrix.push(vector);
console.log(zeroMatrix);
}
打印到控制台的结果如下
1)[1,2,0,0] // vector
2)[] // zeroMatrix
现在惊喜
3)[[1,2,1,0],[2,0,1,0],[0,1,1,0]] // zeroMatrix after pushing the vector
此外,如果我在调试中运行它,它会按预期推送。 你知道什么会导致这种行为吗?