ES6遍历数组

ES5遍历数组

forEach

myArray.forEach(function (value) {
    console.log(value);
});

缺点

不能使用break语句中断循环,也不能用return语句返回外层函数

for-in循环

for (var i in arr) {
    console.log(arr[i]);
}

缺点

  • 赋值给i的值不是number类型是字符串,
  • 在某些情况下,这段代码可能按照随机顺序遍历数组元素。

ES6 for-of

for (var i of arr){
    console.log(i);
}

优点

  • 最简洁、最直接的遍历数组元素的语法
  • 避开了for-in的缺陷
  • 可以正确响应break、continue和return语句
  • 可以遍历其他集合,支持大多数类数组对象,支持字符串遍历,将字符串是为一系列Unicode字符遍历
for(var char of 'hello'){
    console.log(char)
}
  • 支持Map和Set对象遍历

缺点

  • 不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法:
for (var key of Object.keys(someObject)) {
  console.log(key + ": " + someObject[key]);
}