尝试检查某些变量是否包含内容,因为它们会抛出错误并在不执行时破坏ajax函数。问题是只检查data[2][0]
是否包含某些内容会导致以下错误:
未捕获的TypeError:无法读取属性' 0'未定义的
我非常不愿意在之前阶段检查这一点。如何检查data[2][0]
是否已定义,而不会导致实际检查中断我的js?
代码:
//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
非常感谢任何帮助。
答案 0 :(得分:2)
您应该使用''
检查变量是否未定义,而不是使用if (typeof myVar === 'undefined')
的等式检查:
Array.isArray(myVar)
您还可以使用[TestCase(typeof(SomeException))]
[TestCase(typeof(SomeOtherException))]
public void UnitTest(Type exceptionType)
{
Assert.That(()=>_businessService.Setup(x=>x.DoWork),
Throws.InstanceOf(exceptionType));
}
答案 1 :(得分:1)
我会先检查data[2]
是否存在,然后再重新定义zp
。
var zp = data[2];
if (zp) zp = zp[0];