黑马程序员技术交流社区
标题:
关于JavaScript中的foreach问题
[打印本页]
作者:
朱京辉
时间:
2013-1-18 04:28
标题:
关于JavaScript中的foreach问题
本帖最后由 朱京辉 于 2013-1-19 20:46 编辑
js中的arry是一个宝贝,不仅是一个数组,还是一个dictionary,还是一个Stack
var dict = new Array();
dict[ "人" ] = "ren" ;
dict[ "口" ] = "kou" ;
dict[ "手" ] = "shou" ;
alert(dict[ "口" ]);
alert(dict.口);
for (var k in dict) { //js中的foreach语法,遍历主键
alert(k);
}
上面是上课的一个例子,我想把alert(k)其实改成alert(dict[k])也可以遍历全部内容
因为之前看到一个帖子分析foreach语法效率高,尽量用foreach,alert(dict[k]);这样用合理吗?
作者:
黑马刘俊
时间:
2013-1-18 12:16
是可以的,但是显示出来的内容是不一样的
for (var k in dict) {
alert(k);
}
这里面K遍历出来是dict的键值,也就是 人,口 手, 如果你用alert(dict[k]),显示的应该是,"ren","kou","shou"
作者:
乔培培
时间:
2013-1-18 13:18
js没有foreach关键字,js中的for就是foreach,用法也类似
在你的代码中
alert(k)表示索引值,也就是“人”“口”“手”
alert(dict[k])表示具体的值,也就是“ren”“kou”“shou”,用法没有问题
eg.
for(var i in ary){
//i 为索引数字
alert(ary[i]);
}
for(var key in data){
// key 为关键字
alert(data[key]);
}
作者:
朱京辉
时间:
2013-1-18 18:03
又没更详细的剖析,求指教
作者:
HM刘磊
时间:
2013-1-18 22:26
js里是没有foreach这个关键字的,
for语句有两种用法,一种就是foreach的语法形式,alert(k)获得的是array的Key值,而alert(dict[k])获得的是其value值。
作者:
乔培培
时间:
2013-1-19 17:36
yeah,可以像for一样用!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2