本文解析JavaScript中实现类似foreach遍历的方法。通过对比普通数组和字典数组的遍历示例,说明for循环按索引取值,而for...in语句返回的是键名(key)而非值(value),帮助开发者正确选择遍历方式。
JavaScript中for循环与for...in遍历的区别
JavaScript语言标准中并不存在名为foreach的关键字,但开发者可以使用var v in array的语法结构来执行遍历操作。不过需要特别注意,
这种遍历方式获取到的是键名(key)而不是对应的值(value)。具体表现如下面的示例所示:
参考以下代码实现:
<script type="text/javascript">
// 普通数组
var intArray = new Array();
intArray[0] = "第一个";
intArray[1] = "第二个";
for(var i = 0; i<intArray.length;i++)
{
alert(intArray[i]); // 第一个,第二个
}
// 拿到的是下标(像dictionary的key)
for(var key in intArray)
{
alert(key); // 0,1
}
// 字典数组
var dicArray = new Array();
dicArray["f"] = "第一个";
dicArray["s"] = "第二个";
// 无法取到
for(var i = 0; i<dicArray.length;i++)
{
alert(dicArray[i]);
}
// 拿到的是下标
for(var key in dicArray)
{
alert(key); // f,s
}
</script>