javascript - for循环中的变量是一个字符串

标签 javascript for-loop

我不确定这是否是正常行为,但是运行这个:

for (var i in [1, 2, 3]) {
    console.log(i + 1);
}

结果:

// 01
// 11
// 21

谁能解释一下,为什么是var i在这种情况下被视为字符串而不是如果我这样做 for (var i = 0; i < [1, 2, 3].length; i++)

最佳答案

这很可能是因为在这种 for 循环样式 (for..in) 中,它将 i 视为键,并且由于对象中的键通常是字符串(是的,数组是一种类型javascript 中的对象),它将其视为字符串。

parseInt(i) 在这种情况下工作,但为了良好的编程习惯,您可能希望使用类似于此的 for 循环:

var array = [1, 2, 3];
for (var i = array.length - 1; i >= 0; i--) {
    // do work with each array element here
} 

关于javascript - for循环中的变量是一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38985421/

相关文章:

javascript - Bootstrap 悬停水平子导航

delphi - for在TObjectList中怎么办?

r - 在R中的for循环内运行函数时中断for循环

javascript - AngularJS:如何从其他 JSON 中搜索并替换/添加 JSON 对象中的键?

javascript - 在没有数据源的情况下将项目添加到 Kendo MultiSelect

javascript - JQuery 模板 : How to preserve backslashes in content?

javascript - 从 XYZ 解码并编码为 UTF8

javascript - 为什么 Javascript parseFloat 在 for 循环中附加额外的值?

python - 在 Python 的 for 循环中使用多个变量

python - for 循环在 Python 中如何工作?喜欢在内心深处发生什么过程?