我已经使用请求参数值编写了JavaScript代码。
请求是:
{
"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;
}
即使参数ancPurchased为空,此代码也返回true。
答案 0 :(得分:1)
一个空字符串将被拆分成一个包含一个空字符串的数组。
var ancPurchased = '';
var ancArray = ancPurchased.split(',');
ancArray.length
>>> 1
您需要特殊说明:
var ancPurchased = '';
var ancArray = (ancPurchased ? ancPurchased.split(',') : []);
ancArray.length
>>> 0
答案 1 :(得分:0)
对空字符串执行分割将返回一个包含一个元素的数组。 因此每次都返回true。
答案 2 :(得分:0)
这是因为当您在此处分割空字符串时,它将返回一个元素的数组,即一个空字符串:
[""]
其长度等于1。
示例:
var str = "";
var len = str.split(",").length;
console.log(len);
您可以将代码修改为:
var ancArray = mbox.param('ancPurchased').trim() !=="" ?mbox.param('ancPurchased').split(',') : [];