Javsacript для цикла, выдающего странные результаты - PullRequest
0 голосов
/ 12 октября 2018

Я написал простой цикл for для выполнения некоторых манипуляций с DOM на основе ответа json.Вот код, который у меня есть

 onSuccess: function(a) {
        var b = a.items.length;
        for (i = 0; i < b; i++)
          user_id = a.items[i].id;
          $('#user_id').checked = true;
          selectUserSettings(user_id);
        }      
    },

В одном примере, с которым я работал, в наборе результатов 'a' было 14 элементов.Цикл for при добавлении точки останова показывает значение i в 0,1,2,2,3,2,3,4,2,3,4,5 ... По сути, оно сбрасывается и начинается в 2 и идетдо 1 дополнительного индекса, прежде чем делать это снова ... Что я здесь делаю не так? Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 12 октября 2018

Скорее всего, из-за этой строки for (i = 0; i < b; i++), когда i объявлено без ключевого слова let или var, оно находится в глобальной области видимости.

Измените это на

for (let i = 0; i < b; i++)

Также, если я правильно понимаю, вы хотите использовать переменную user_id для доступа к элементу.Если это так, то измените

   user_id = a.items[i].id;
  $('#user_id').checked = true;

на

let user_id = a.items[i].id;
$('#'+user_id).checked = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...