1.for循环,需要知道数组的长度,才能遍历
var arr =['2','豆豆熊',true,'HelloWorld'];
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
- 1
- 2
- 3
- 4
2. forEach循环,循环数组中每一个元素并采取操作, 没有返回值, 可以不用知道数组长度
var arr =['2','豆豆熊',true,'HelloWorld'];
arr.forEach((i,index)=>{
i='forEach遍历,'+i;
console.log(i);
})
- 1
- 2
- 3
- 4
- 5
3.map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变
var arr =['2','豆豆熊',true,'HelloWorld'];
var newstate=arr.map(function(index) {
index="map遍历"+index;
console.log(index)
return index;
})
console.log("newstate", newstate);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
4.filter函数, 过滤通过条件的元素组成一个新数组, 原数组不变
var arr =['2',3,'豆豆熊',true,'HelloWorld'];
var newstate=arr.filter(function(index) {
return typeof index==='number';
})
console.log(arr,newstate);
- 1
- 2
- 3
- 4
- 5
5.some函数,遍历数组中是否有符合条件的元素,返回Boolean值
var arr =['2',3,'豆豆熊',true,'HelloWorld'];
var newstate=arr.some(function(index) {
return typeof index==='number';
})
console.log(arr,newstate);
- 1
- 2
- 3
- 4
- 5
6.every函数, 遍历数组中是否每个元素都符合条件, 返回Boolean值
var arr =['2',3,'豆豆熊',true,'HelloWorld'];
var newstate=arr.every(function(index) {
return typeof index==='number';
})
console.log(arr,newstate);
- 1
- 2
- 3
- 4
- 5
7.遍历对象,常用方法 in
let obj ={a:'2',b:3,c:true};
for (var i in obj) {
console.log(obj[i],i)
}
console.log(obj);
- 1
- 2
- 3
- 4
- 5
小总结:
1、map()速度比foreach()快
2、map():返回一个新的Array,不对原数组产生影响,每个元素为调用func的结果。
3、foreach()不会产生新数组,没有返回值,只是针对每个元素调用func
3、map()因为返回数组所以可以链式操作,foreach不能
4、map()要比foreach()执行速度更快
5、filter()返回一个符合func条件的元素数组
6、some()返回一个boolean,判断是否有元素是否符合func条件
7、every()返回一个boolean,判断每个元素是否符合func条件
8、js中every和some都是对数组进行迭代操作的函数
区别
every() 开始循环,只要有任何一项返回false,将会跳出循环,不会继续向下迭代
some() 开始循环,一直在找符合条件的值,一旦遇到有一项返回true,将会跳出循环,不会继续向下迭代