0

私はここで奇妙な問題を抱えています。

変数が存在するかどうかを確認しようとしています

私は持っています

for(var i=0; i<6; i++{
  if(results[(i+1)].test){
    results[(i+1)].test=i + 'test';
  }
}

results(6).testが未定義であることを知っているので、変数が存在するかどうかを確認するためにそのインデックスを追加する必要があります。コンソールエラーが発生し続ける

Uncaught TypeError: Cannot read property 'test' of undefined   

if(results[(i+1)].test)変数が存在するかどうかを確認すると思いました

私も試しました

if(typeof results[(i+1)].test !='undefined'){
 results[(i+1)].test=i + 'test'
}

しかし、それでもエラーが発生します。これを修正するにはどうすればよいですか?

どうもありがとう!

4

4 に答える 4

3

foo.testが未定義かどうかを確認していますが、問題はfoo自体(この場合results[i + 1])が未定義であるということです。

最初にそれを確認する必要があります。例:

if (typeof results[i+1] != "undefined") {
    // do stuff with results[i+1].test, or results[i+1].whatever
}
于 2012-12-12T22:16:54.870 に答える
1

.testが存在するかどうかを確認する前に、results(6)をオブジェクトとして割り当てる必要があります。あなたが言ったように、results(6)は未定義です。つまり、results(6).testを呼び出そうとすると、説明したエラーが発生します。

于 2012-12-12T22:17:38.397 に答える
1

結果配列の内容を確認していません。

これを行う必要があります:

if(typeof results[(i+1)] !== 'undefined'){
 results[(i+1)].test=i + 'test'
}
于 2012-12-12T22:18:31.233 に答える
1

結果[(i + 1)]は定義されていますか?

if(results[(i+1)] && results[(i+1)].test){
  results[(i+1)].test=i + 'test';
}
于 2012-12-12T22:18:43.590 に答える