专职C++

不能停止的脚步

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  132 Posts :: 7 Stories :: 134 Comments :: 0 Trackbacks

常用链接

留言簿(13)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

60天内阅读排行

(这些例子已经在node.js 6.9.x下,运行通过)


js中循环语句有forEach,for in,for of 三种了


一般的遍历数组的方法:
[javascript] view plain copy
  1. var array = [1,2,3,4,5,6,7];  
  2. for (var i = 0; i < array.length; i) {  
  3.     console.log(i,array[i]);  
  4. }  


结果如下:
0 1
1 2
2 3
3 4
4 5
5 6
6 7


用for in的方遍历数组
[javascript] view plain copy
  1. for(let index in array) {  
  2.     console.log(index,array[index]);  
  3. };  


结果如下:
0 1
1 2
2 3
3 4
4 5
5 6
6 7
上述两个结果是一样的.
也可以用forEach
[javascript] view plain copy
  1. array.forEach(v=>{  
  2.     console.log(v);  
  3. });  


结果如下:
1
2
3
4
5
6
7
forEach的缺点也是很明显的,就是不能中断


除了上面方法,还可以用forEach
可以使用forEach方法,这个是数组对象自带的:
[javascript] view plain copy
  1. array.forEach(function(v) {  
  2.     console.log(v);  
  3. });  


结果如下:
1
2
3
4
5
6
7
用for in不仅可以对数组,也可以对enumerable对象操作
如下:代码
[javascript] view plain copy
  1. var A = {a:1,b:2,c:3,d:"hello world"};  
  2. for(let k in A) {  
  3.     console.log(k,A[k]);  
  4. }  


结果如下:
a 1
b 2
c 3
d hello world


在ES6中,增加了一个for of循环,使用起来很简单
 对于数组
[javascript] view plain copy
  1. for(let v of array) {  
  2.     console.log(v);  
  3. };  


结果如下:
1
2
3
4
5
6
7
对于字符串则可以
[javascript] view plain copy
  1. let s = "helloabc";  
  2. for(let c of s) {  
  3.     console.log(c);  
  4. }  


结果如下:
h
e
l
l
o
a
b
c
[javascript] view plain copy
  1. for(let index in s) {  
  2.     console.log(index,s[index]);  
  3. }  


结果如下:
0 h
1 e
2 l
3 l
4 o
5 a
6 b
7 c


总结来说:for in总是得到对像的key或数组,字符串的下标,而for of和forEach一样,是直接得到值
结果for of不能对象用
对于新出来的Map,Set上面
如下
[javascript] view plain copy
  1. var set = new Set();  
  2. set.add("a").add("b").add("d").add("c");  
  3. var map = new Map();  
  4. map.set("a",1).set("b",2).set(999,3);  
  5. for (let v of set) {  
  6.     console.log(v);  
  7. }  
  8. console.log("--------------------");  
  9. for(let [k,v] of map) {  
  10.     console.log(k,v);  
  11. }  


结果如下:
a
b
d
c
--------------------
a 1
b 2
999 3
然这个用for in是遍历不了的
posted on 2017-01-04 11:21 冬瓜 阅读(736) 评论(0)  编辑 收藏 引用 所属分类: 原创javascript

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理