Javascript for 循环给出奇怪的结果

Javsacript for loop giving out weird results

我写了一个简单的 for 循环来根据 json 响应执行一些 DOM 操作。这是我的代码

 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 个额外的索引,然后再重新做一次...我在这里做错了什么?任何帮助将不胜感激。

很可能是因为这一行 for (i = 0; i < b; i++)i 声明时没有 letvar 关键字,它在全局范围内。

将此更改为

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;