一,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