707   JS

一,forEach:

1,使用对象:

数组,数组对象

[‘a’,’b’]

[{

‘key’:’val’

},{

‘key’:’val’

}]

2,使用方法:

var a = [1,2];
var b = a.forEach(function(e,i){
console.log(i+’ : ‘ + e);
});

3,注意问题:
不能使用break,continue退出循环,可通过return停止执行,但是返回为undefined

var a = [1,2];
var b = a.forEach(function(e,i){
console.log(i+’ : ‘ + e);
return ‘end’;
});
console.log(b);

 

二,forin

1,使用对象:

数组,对象

[‘a’,’b’]

{
‘key’:’val’
‘key’:’val’

}

2,使用方法:

var a = {‘key1′:’val1′,’key2′:’val2′};
for(var i in a) {
console.log(i+’ : ‘ + a[i]);
}

3,注意问题:
会遍历所有可枚举属性,包括继承的父级属性,为了避免这种情况可通过以下方式

for(var i in a) {
if(!a.hasOwnProperty(i)) continue;
console.log(i+’ : ‘ + a[i]);
}

 

三,forof

1,使用对象:拥有iterator数据结构的对象,包括数组,map,set;

[‘a’,’b’]

{
‘key’:’val’
‘key’:’val’

}

2,使用方法:

var arr=[1,2]
for(var val of arr){
console.log(val);
}

3,注意问题:
不支持普通对象的遍历,比如{‘a’:’1′,’b’:’2′},通过其他方式实现

for(var key of object.keys(obj)){
console.log(key+”:”+obj[key]);
}

 




Leave a Reply

Your email address will not be published. Required fields are marked *