在循环中将数组推入空数组

时间:2015-07-14 23:00:10

标签: javascript

我在循环中将向量推入数组。 这是一段代码片段

    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

此外,如果我在调试中运行它,它会按预期推送。 你知道什么会导致这种行为吗?

0 个答案:

没有答案