0

配列要素が未定義かどうかをテストしようとしています:

  if(typeof selected[i].facet != 'undefined')
  {
       //do stuff
  }

私にくれます

Javascript 'Uncaught TypeError: Cannot read property 'facet' of undefined '
4

3 に答える 3

2

配列インデックスとプロパティの両方をテストする必要があります。

if (selected[i] && selected[i].facet !== undefined) { // ...
于 2013-08-13T15:04:40.520 に答える
1
if((selected[i]) && (selected[i].facet != undefined))
  {
       //do stuff
  }
于 2013-08-13T15:05:37.507 に答える
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 )。症状と戦うのではなく、エラーの原因を修正することを目指してください。

于 2013-08-13T15:07:31.153 に答える