卡住了让For Loop在第一次迭代时立即执行

时间:2019-03-17 03:22:56

标签: javascript for-loop if-statement

我尝试了以下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  

1 个答案:

答案 0 :(得分:2)

数组从0开始。您希望您的条件读取为:i === 0以匹配第一个查询参数片段。

更新

您的键(i)似乎是字符串。如果要使用身份比较,则需要使用parseInt(i) === 0。否则,i == 0应该可以解决问题。