Javascript数组计数与控制台不一致?

时间:2016-09-17 14:35:56

标签: javascript arrays

我在这里傻吗? (我来自Ruby,所以我可能会遗漏一些Javascript数组。)

Array[1]

结果在控制台中:console.log(new_devices.length)

0

控制台中的结果:var sp = require('serialport'); var new_devices = []; sp.list(function(err, ports) { ports.forEach(function(current) { if (current.manufacturer == "Teensyduino") { new_devices.push(current); } }); }); console.log(new_devices); console.log(new_devices.length);

产生此代码的代码:

Sails

enter image description here

1 个答案:

答案 0 :(得分:2)

当你控制日志数组时,控制台会创建对该数组的引用,它不会显示执行时数组状态的快照。

(在您的代码项中附加到列表异步,因此当控制台日志打印时,列表为空。)

考虑这个例子:

enter image description here