方法一:for(){} 遍历
这是最笨的方法,low到不解释
缺点:蠢!
var arr = [1,2,3,"a",true];
for(var i=0;i<arr.length;i++){
console.log("第" + i + "次遍历:" + arr[i]);
}
执行结果:
方法二:forEach 遍历
缺点:不能使用 break 语句来跳出循环,也不能使用 return 语句来从闭包函数中返回。
如果有 for- 这种语法来遍历数组就会方便很多,见方法三。
源代码:
var arr = [1,2,3,"a",true];
//第一个参数为数组的元素,第二个元素为数组的下标
arr.forEach(function(ele,index){
console.log("数组下标为:" + index + ",数组元素为:" + arr[index]+"或"+ele);
});
执行结果:
方法三:for-in 遍历
可以简单把for in遍历理解为更高级的for(){}遍历(能遍历对象属性)
缺点:用for-in不仅数组本身的元素将被遍历到,那些由用户添加的附加元素也将被遍历到,例如某数组有这样一个属性 myArray.name,那么在某次循环中将会出现 index=”name” 的情况。而且,甚至连数组原型链上的属性也可能被遍历到。最不可思议的是,在某些情况下,上面代码将会以任意顺序去遍历数组元素。
简单来说,for-in 设计的目的是用于遍历包含键值对(key-value对)的对象,对数组并不是那么友好。
1、
源代码:
var arr = [1,2,3,"a",true];
for(key in arr){
console.log("第" + key + "次遍历:" +arr[key]);
}
执行结果:
2、
一般对象属性或属性值 也是通过 for in来循环遍历的。代码如下:
var person = {
name:"bty",
age:21,
sex:"man"
};
for(key in person){
console.log("属性:" + key + ",值:" + person[key]);
}
执行结果:
方法四:for-of 遍历
for-of是ES6引进的新的循环遍历语法。
for–in 是用于遍历对象的属性,对数组并不友好;而for-of 则是专门用来遍历数组中的元素。
var arr = [1,2,3,"a",true];
//ele代表数组元素
for(var ele of arr){ //
console.log("数组的元素值:\t" + ele);
}
方法五:every()、some()、filter()、map()、reduce()、reduceRight()
这里方法可以翻阅官方文档查询,不同的情况下运用不同的函数,会有各有优缺点,这里不多做解释。