在JavaScript中构造查询字符串的更简洁方法

时间:2014-05-16 20:54:43

标签: javascript jquery query-string

我不会写很多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)
});

0 个答案:

没有答案