Ish*_*now 2 javascript foreach for-in-loop
我正在尝试使用for-in语法循环遍历数组.问题是,这些数字正在转换为字符串.
for(var element in [0]) {
document.write(typeof(element)); // outputs "string"
}
Run Code Online (Sandbox Code Playgroud)
这是标准行为吗?我可以想出一些解决它的方法,但我真的只是在寻找解释,以扩展我对JavaScript的理解.
我想你误解了JavaScript的for...in作用.它不会迭代数组元素.它迭代对象属性.JavaScript中的对象有点像其他语言中的字典或哈希,但是用字符串键入.特别是数组实现为具有从中0到整数的属性的对象N-1- 但是,由于所有属性名称都是字符串,所以索引也是内向的.
现在让我们采取一些不同的例子[0],因为这里索引与值一致.让我们来讨论一下[2].
因此,[2]是,如果我们忽略我们继承的东西Array,几乎是一样的{ "0": 2 }.
for..in将迭代属性名称,这将获取"0",而不是2.
Array你问,现在,如何迭代s然后呢?通常的方法是:
var arrayLen = array.length;
for (var i = 0; i < arrayLen; i++) {
var el = array[i];
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2135 次 |
| 最近记录: |