关于console.log,我相信我有一个与
相关的案例在我的控制台中我得到了
我的代码与24相关
const lists = this.props.localData.lists;
if(lists.length === 0 ) {
console.log('lists',lists);
}
这里发生了什么?
如果它是正确的,我怎么能访问lists[0]
(未定义)?
有人能给我一个暗示吗?
提前致谢。
答案 0 :(得分:1)
有些评论在这里暗示了这个问题,但我没有看到一个完全正确地解释它。发生了什么。
在您致电console.log()
时,会创建阵列的初始单行显示。只需查看日志不会改变任何内容(与一两条评论所说的相反)。对阵列的后续更新也不会改变这种单线视图。
但是,当您单击小三角形以展开日志条目时,将在您单击时使用当前数组内容创建展开的多行显示。三角形。这就是导致两者之间差异的原因。当您调用console.log()
时,您的数组为空,并且在此之后但在您单击以展开控制台中的显示之前添加了一个元素。
如果您希望在console.log()
调用时获得数组的完整视图,那么最好使用JSON.stringify()
。您可以使用此函数的第三个参数来打印结果。因此,在您的示例中,您可以使用:
console.log( JSON.stringify( lists, null, 4 ) );
答案 1 :(得分:-1)
检查一下:foo = []
创建一个新数组并将其引用分配给变量。任何其他引用都不受影响,仍然指向原始数组。
foo.length = 0
修改数组本身。如果您通过其他变量访问它,那么您仍然可以获得修改后的数组。
幸运的是。