数组有记录,但在控制台中显示数组长度0

曼格什·道恩卡(Mangesh Daundkar)

我的代码中有文件数组。当我添加新文件时,其显示的数组长度不正确。但是,如果我用settimeout检查长度,则显示正确的长度。

console.log('row.myDocuments: ', row.myDocuments);  
console.log('length: ', row.myDocuments.length);

这样在控制台中获取结果,

在此处输入图片说明

每次我添加新文件时,进入控制台的长度为(实际长度-1)

亚历克斯·D

这与Chrome开发者工具有关。您在“ []”旁边的蓝色正方形中看到小“ i”了吗?如果您将鼠标悬停在它上面,它会显示“下面的值刚刚被评估”。这意味着在您记录阵列(实际上是一个javascript对象)时,它为空,但是后来Chrome检测到了更改,并在控制台中更新了该阵列。

(而且,仅当使用小箭头展开它时,您才能在记录数组时看到该数组为空,因为它看起来像是“ []”,否则它看起来像是“ [{... }]“)。

Chrome在记录对象时会更新对象,但不是简单的值。Array.length是一个数字,因此在您对其进行记录时,它会为您提供其值(0),并且如果Array.length在以后更改,它将不会更新控制台。但是如果您在更改后进行了记录(与超时一样),它将记录最近的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章