我不会写很多JavaScript。以下代码有效,但是有更简洁的方法来编写吗?我想构造一个查询字符串,该字符串将从可能为null的变量追加到URL。如果所有值都为null,我想要一个空字符串。我可以使用jQuery(我正在使用它)。
constructQueryString = function(code, flag) {
var qsObj = {};
if ( code ) {
qsObj["code"] = code;
}
if ( flag ) {
qsObj["flag"] = flag;
}
return ( !$.isEmptyObject(qsObj) ) ? "?" + $.param(qsObj) : "";
}
一些测试:
console.log(constructQueryString("XXXXXX", "true"));
// ?code=XXXXXX&flag=true
console.log(constructQueryString(null, "true"));
// ?flag=true
console.log(constructQueryString("XXXXXX", null));
// ?code=XXXXXX
console.log(constructQueryString(null, null));
// (an empty string)
更新:下面是一些显示我如何在项目中使用代码的上下文。
code = $el.attr("data-code") || null;
flag = $el.attr("data-flag") || null;
qsObj = {};
if ( code ) {
qsObj["code"] = code;
}
if ( flag ) {
qsObj["flag"] = flag;
}
queryString = ( !$.isEmptyObject(qsObj) ) ? "?" + $.param(qsObj) : "";
$.ajax({
"type": "POST", "contentType": "application/json; charset=utf-8",
"url": url + queryString,
"data": JSON.stringify(reqBody)
});