以数组 const arr = [1,2,3,4,5] 为例,有如下方法可以用于遍历操作。
1 for
for (let i = 0; i < arr.length; i++){
console.log(arr[i])
}
2 for-in
for(let index in arr){
console.log(arr[index]);
}
for-in
实际是遍历一个对象的可枚举属性,是无序的遍历,所以在需要有序的遍历数组时不能用for-in
3 for-of
for (let item of arr) {
console.log(item);
}//es6 新增
任何实现了可迭代协议(Iteration protocols) 的对象(Array,Map,Set,String等)都可用for-of
进行迭代。
4 forEach
arr.forEach((item, index) => {
console.log(item);
});
这里的forEach
指的是Array.prototype.forEach
,forEach
是数组特有的方法,其他数据结构不能使用该方法。当然某些数据结构也可以定义自己的forEach
方法,比如通过document.querySelectorAll
获取的NodeList
也拥有自己的forEach
方法,用法也和arry
的forEach
一样,但他们不是一个东西。
5 map
arr.map((item, index) => {
console.log(item);
});
注意:map会返回一个和元素组长度一样的新数组,新数组中的元素由元素组元素计算得到。
6 filter
arr.filter((item, index) => {
console.log(item);
});
注意:filter也会返回一个新数组,新数组长度<=原数组长度,新数组中元素由原数组中筛选得到。