Застрял заставить For Loop выполняться прямо на первой итерации - PullRequest
0 голосов
/ 17 марта 2019

Я попробовал несколько вариантов следующего оператора 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 - это проблема. То, что мне нужно, это выполнить, если это первый фрагмент. Все, что я пробовал до сих пор, провалилось, и вместо этого он выполняет остальное.

Вот переменная queryParams:

client_id=CLIENTIDHERE&response_type=code&scope=SCOPESHERE&redirect_uri=REDIRECTURIHERE&state=STATEHERE  

1 Ответ

2 голосов
/ 17 марта 2019

Массивы начинаются с 0.Вы хотите, чтобы ваше условие читалось: i === 0, чтобы соответствовать первому фрагменту параметра запроса.

Обновление:

Похоже, что ваши ключи (i) являются строками.Вам нужно будет использовать parseInt(i) === 0, если вы собираетесь использовать сравнение идентичности.В противном случае, i == 0 должен добиться цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...