JavaScript 数组的遍历
var a = [1, 2, 3]; // for循环 for(var i = 0; i < a.length; i++) { console.log(a[i]); } // while循环 var i = 0; while (i < a.length) { console.log(a[i]); i++; }
ES6提供三个新的方法——entries()
,keys()
和values()
——用于遍历数组。它们都返回一个遍历器对象(详见《Iterator》一章),可以用for...of
循环进行遍历,唯一的区别是keys()
是对键名的遍历、values()
是对键值的遍历,entries()
是对键值对的遍历。
for (let index of ['a', 'b'].keys()) { console.log(index); } // 0 // 1 for (let elem of ['a', 'b'].values()) { console.log(elem); } // 'a' // 'b' for (let [index, elem] of ['a', 'b'].entries()) { console.log(index, elem); } // 0 "a" // 1 "b"
for ...in 遍历
var a = [1, 2, 3]; for (var i in a) { console.log(a[i]); }
for...in
不仅会遍历数组所有的数字键,还会遍历非数字键。
var a = [1, 2, 3]; a.foo = true; for (var key in a) { console.log(key); } // 0 // 1 // 2 // foo
foreach 遍历,当需要遍历数组并对每个元素进行处理时
var colors = ['red', 'green', 'blue']; colors.forEach(function (color) { console.log(color); });
map 遍历,与foreach的不同点是map可以return
[1,2,3].map(function (x) { return x * x; });
参考链接:http://javascript.ruanyifeng.com/grammar/array.html