我尝试了以下if语句的几种变体,但是没有任何运气。我敢肯定这是一个简单的错误。
这是代码-
this.params = function (request) {
var queryParams;
queryParams = request.urlQuery;
var fragments = queryParams.split('&');
return {
"has_query_parameters": true,
"query_parameters": (function () {
var results;
results = [];
if (queryParams.length != 0) {
for (i in fragments) {
var keyvalue = fragments[i].split('=')
name = keyvalue[0];
if (i === 1) {
results.push(keyvalue[0] + '=" & ' + '$' + keyvalue[0]);
} else {
results.push('&' + keyvalue[0] + '=" & ' + '$' + keyvalue[0]);
}
}
}
return results.join(" & \"");
})()
};
};
问题所在是If语句中i === 1
所在的位置。我需要做的是,如果它是第一个片段,则要执行。到目前为止,我尝试过的所有操作都失败了,而是执行了else。
这是queryParams变量:
client_id=CLIENTIDHERE&response_type=code&scope=SCOPESHERE&redirect_uri=REDIRECTURIHERE&state=STATEHERE
答案 0 :(得分:2)
数组从0
开始。您希望您的条件读取为:i === 0
以匹配第一个查询参数片段。
更新:
您的键(i
)似乎是字符串。如果要使用身份比较,则需要使用parseInt(i) === 0
。否则,i == 0
应该可以解决问题。