我正在尝试测试数组元素是否未定义:
if(typeof selected[i].facet != 'undefined')
{
//do stuff
}
给了我
Javascript 'Uncaught TypeError: Cannot read property 'facet' of undefined '
答案 0 :(得分:2)
您必须测试数组索引和属性:
if (selected[i] && selected[i].facet !== undefined) { // ...
答案 1 :(得分:1)
if((selected[i]) && (selected[i].facet != undefined))
{
//do stuff
}
答案 2 :(得分:1)
你应该正确地做你的循环
for (var i = 0, len = selected.length; i < len; ++i) {
//selected[i] will always be a valid index in the array
}
如果selected[i]
是数组中的有效索引,但undefined
无论如何,那么您在语义上不需要数组,而是需要以整数作为键的字典。在这种情况下,您可以使用for( var key in map )
循环播放它。旨在解决错误的根源,而不是解决症状。