Javascript 当参数为空时,脚本始终返回true
我已经使用请求参数值编写了javascript代码 请求是:Javascript 当参数为空时,脚本始终返回true,javascript,Javascript,我已经使用请求参数值编写了javascript代码 请求是: { "mbox": "abc", "mboxTrace":true, "mboxParameters": { "env":"nonprod", "pnr":"", "ATR":"", "travelDate":"", "deptTime":"", "arrivalTime":"", "fltNo":"
{
"mbox": "abc",
"mboxTrace":true,
"mboxParameters": {
"env":"nonprod",
"pnr":"",
"ATR":"",
"travelDate":"",
"deptTime":"",
"arrivalTime":"",
"fltNo":"",
"SSR":"",
"ancPurchased":"",
"userType":"",
"geo":"",
"OS":"",
"deptCity":"",
"arrivalCity":"",
"elig":"",
"AirportTimezone":""
}
}
JavaScript代码是:
if (mbox.name == 'abc')
{
var ancillaryPurchased= "false";
var ancArray = mbox.param('ancPurchased').split(',');
//var count = ancArray.length;
if(ancArray.length >= 1)
{
ancillaryPurchased = "true";
}
else
{
ancillaryPurchased= "false";
}
return ancillaryPurchased;
}
即使参数为空,此代码仍返回true。空字符串将被拆分为一个包含一个空字符串的数组
var ancPurchased = '';
var ancArray = ancPurchased.split(',');
ancArray.length
>>> 1
您将希望在特殊情况下:
var ancPurchased = '';
var ancArray = (ancPurchased ? ancPurchased.split(',') : []);
ancArray.length
>>> 0
对空字符串执行拆分将返回一个包含一个元素的数组。
因此每次都返回true。这是因为在这里拆分空字符串时,它返回一个元素的数组,即空字符串:
[""]
它的长度等于1
例如:
var-str=;
var len=str.split,.length;
console.loglen@AmbikaTewari很高兴能帮助您:-