1. for 循环
最基本的一种遍历方式就是for 循环。
for 循环既可以遍历数组,也可以遍历伪数组!
var arr=[1,2,3,4,5];
for (var i = 0;i<arr.length;i++){
console.log(arr[i]);
}
2. foreach()
foreach() 只能访问数组,不能访问伪数组。
var arr=[1,2,3,4,5];
arr.forEach(function(value,index){
// 第一个参数value 获取遍历到的元素;
// 第二个参数index 为元素的索引值。
console.log(index, value);
})
伪数组可以通过数组的原型进行遍历:
obj = {1: 1, 2: 2, 3: 3 };
Array.prototype.forEach.call(obj, function(){
console.log(index, value);
})
3. map()
和原生的forEach方法一样,不能遍历伪数组
var arr=[1,2,3,4,5];
obj = {1: 1, 2: 2, 3: 3 };
arr.map(function(value, index, arr){
// 第一个参数:遍历到的元素
// 第二个参数:遍历到的索引
// 第三个参数:当前被遍历的数组
console.log(index, value);
})
4. jQuery each()
jQuery的each方法是可以遍历伪数组的
var arr = [1,3,5,7,9]
var obj = {0:1, 1:3 ,2:5, 3:7, 4:9, length:5 }
$.each(arr,function(index,value){
// 第一个参数:索引
// 第二个参数:遍历到的元素
console.log(index,value);
})
$.each(obj,function(index,value){
console.log(index,value);
})
5. for…in
for…in 通常用来遍历对象属性
for (let key in obj) {
console.log(key, obj[key]);
}
6. for…of
for…of循环是ES6中新增的一种遍历方式,其内部使用了迭代器(Iterator)来进行遍历。它可以遍历所有实现了迭代器的数据结构,如数组、Set、Map、字符串、arguments、NodeList对象等。
let obj1 = {
name: Symbol("name"),
age: Symbol("age"),
location: Symbol(),
test: Symbol()
}
for (let i in obj1) {
console.log(i);
}