相关疑难解决方法(0)

1761
推荐指数
23
解决办法
82万
查看次数

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

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

for (var i in [1, 2, 3]) {
    console.log(i + 1);
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

// 01
// 11
// 21
Run Code Online (Sandbox Code Playgroud)

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

javascript for-loop

33
推荐指数
5
解决办法
3785
查看次数

javascript for循环计数器以字符串形式出现

我把我的程序简化为这个,但它仍然行为不端:

var grid = [0, 1, 2, 3];

function moveUp(moveDir) {
    for (var row in grid) {
        console.log('row:');
        console.log(row + 5);
    }
}
Run Code Online (Sandbox Code Playgroud)

它似乎row是一个字符串而不是整数,例如输出

row:
05
row:
15
row:
25
row:
35
Run Code Online (Sandbox Code Playgroud)

而不是5,6,7,8,这是我想要的.for循环中的计数器不应该是一个字符串吗?

javascript string for-loop

9
推荐指数
1
解决办法
722
查看次数

for(in)循环索引是字符串而不是整数

考虑以下代码:

var arr = [111, 222, 333];
for(var i in arr) {
    if(i === 1) {
        // Never executed
    }
}
Run Code Online (Sandbox Code Playgroud)

它会失败,因为typeof i === 'string'.

这有什么办法吗?我可以显式转换i为整数,但这样做似乎使用simpler for in而不是regular for-loop来破坏目的.

编辑:

我知道==比较使用,但这不是一个选择.

javascript for-loop

5
推荐指数
1
解决办法
3441
查看次数

Javascript for loop var"i"被视为字符串?

我正在使用Titanium构建一些移动应用程序,我注意到这将产生我没想到的结果.

data = ['a','b', 'c','d'];

for (var i in data){
    Ti.API.debug(i+1);
};
Run Code Online (Sandbox Code Playgroud)

这将打印:01,11,12,13

这是Titanium特有的东西还是一般用Javascript?

为什么'i'不被视为整数?我很迷茫.

谢谢你的帮助.

javascript titanium

2
推荐指数
1
解决办法
3908
查看次数

标签 统计

javascript ×5

for-loop ×4

arrays ×1

iteration ×1

loops ×1

string ×1

titanium ×1