変数に何かが含まれているかどうかを確認しようとしています。なぜなら、エラーを投げ、そうでないときにajax関数を壊すからです。問題は、単にdata[2][0]
が何かが含まれているかどうかをチェックすると、次のエラーを引き起こすことがある:未定義をチェックすると、未定義のエラーが発生します
Uncaught TypeError: Cannot read property '0' of undefined
は、私は非常には、前の段階でこれをチェックしないことを好むだろう。実際にjsを破壊することなく、data[2][0]
が定義されているかどうかを確認するにはどうすればよいですか?
コード:
//ajax^
success: function(data){
var xp = data[0][0]; //Contains a string
var yp = data[1][0]; //Contains a string
var zp = data[2][0]; //Is not set, fails here
if(xp === ''){ //Tried using null & undefined here aswell
//Do nothing
} else {
var one = data[0][0];
var oneH = data[0][1];
var oneS = data[0][2];
}
if(yp === ''){
//Do nothing
} else {
var two = data[1][0];
var twoH = data[1][1];
var twoS = data[1][2];
}
if(zp === ''){
//Do nothing
} else {
var three = data[2][0];
var threeH = data[2][1];
var threeS = data[2][2];
}
//ajax continues v
すべてのヘルプははるかに高く評価されます。
_UncaughtはTypeErrorを使用してアレイである場合にも確認することができます:undefined_のプロパティ '0'を読むことができないということは、 'data [2]'が定義されていないことを意味し、 'data'が定義されていないことさえあります。 – putvande
@putvandeはい、私はそれが定義されていないことを知っています。 'data [0]'と 'data [1]'はどちらも定義されていますが、それぞれにリンクがあります。サイトブレークが定義されていないときです。なぜなら、それらを使用する前にチェックする必要があるからです。 –
'var zp = data [2] && data [2] [0] || null; ' – putvande