我正在尝试测试数组元素是否未定义:
if(typeof selected[i].facet != 'undefined')
{
//do stuff
}
给我
Javascript 'Uncaught TypeError: Cannot read property 'facet' of undefined '
我正在尝试测试数组元素是否未定义:
if(typeof selected[i].facet != 'undefined')
{
//do stuff
}
给我
Javascript 'Uncaught TypeError: Cannot read property 'facet' of undefined '
您必须同时测试数组索引和属性:
if (selected[i] && selected[i].facet !== undefined) { // ...
if((selected[i]) && (selected[i].facet != undefined))
{
//do stuff
}
你应该正确地做你的循环
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 )
. 旨在修复错误的根源,而不是与症状作斗争。