![](/img/trans.png)
[英]Javascript - Array/Object exists in console.log, but returns undefined when accessing properties
[英]OOO javascript: object self reference returns undefined but console shows it exists
好吧,所以我在发布之前确实进行了一些搜索......没有运气(或者我可能只是愚蠢)。
我有这个数组,我称之为“myArray”,我将对象推到它上面以填充一些变量:
myArray.push({
time : (y.moveTime - y.startTime),
pos : y.move,
last : myArray[y.recents.length-1].time
});
我的问题是为什么萤火虫会抱怨“最后一个”变量:“ Uncaught TypeError: Cannot read property 'time' of undefined ”。 如果我做
last : myArray[y.recents.length-1]
一切都好。
我不明白的一个观察:当我有“.time”引用时,数组是空的,但如果我删除它,数组就满了。
我在这里错过了什么? 我不明白:(
感谢您的指点。
该错误意味着的评估值
myArray[y.recents.length-1]
不是具有time
属性的 object。 当您执行第一次push
时可能会发生这种情况,因为该数组还没有任何元素。
如果你想隐藏错误并在这种情况下将last
属性分配给undefined
,你可以只添加一个回退值:
last: (myArray[y.recents.length - 1] || {}).time
myArray[y.recents.length-1]
的值可以是任何东西(一些字符串,object,数组,null 等)。 你可以用它设置last
的值,不会出错。
但是,如果将属性设置为非对象(如设置time
),则会导致错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.