说到遍历,最常用的就是数组遍历啦,js 中也有很多遍历的方法和技巧,根据不同的遍历场景和各种方式性能的比较去选择合适的遍历方法,提升编码效率,接下来就开始记录一下吧(嘿嘿)。咱们就遍历arr这个东西吧,本人将每种遍历方法都封装到一个方法中,只需调用对应方法,并传入参数即可。
arr = new Array("a",12,"dfdfd",'4');
1、for循环,需要知道数组的长度,才能遍历
function traverseByFor(arr){
console.log("for循环的方式:");
for(j=0;j<arr.length;j++){
var some = '1';
console.log(arr[j]);
}
console.log(some);
}
遍历结果不必多说
2、foreach 循环遍历
function traverseByForeach(arr){
console.log("forEach的方式");
arr.forEach(function(i,index){
console.log(i + "和" + index);
});
}
由遍历结果可知,i 对应数组内的每个对象,index即是索引
3、 map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变
function traverseByMap(arr){
console.log("map方式遍历:")
var arrAfter = arr.map(function(i){
i = i + '喜欢';
return i;
});
console.log("after:" ,arr,arrAfter);
}
4、 filter函数, 满足条件的元素组成一个新数组, 原数组不变
function traverseByFilter(arr){
console.log("filter方式遍历:")
var tt = arr.filter(function(i){
return typeof i === 'number'
});
console.log(arr,tt);
}
5、some函数,遍历数组中是否有符合条件的元素,返回Boolean值
function traverseBySome(arr){
console.log("some方式遍历")
var tt = arr.some(function(i){
return typeof i === 'number'
});
console.log(arr,tt);
}
6、 every函数, 遍历数组中是否每个元素都符合条件, 返回Boolean值
function traverseByEvery(arr){
console.log('every方式遍历');
var tt = arr.every(function(i){
return typeof i === 'number';
});
console.log(arr,tt);
}
7、for in 遍历(可以用这个遍历对象数组)
function traverseByForIn(arr){
console.log('forin方式遍历:');
for(var i in arr) {
console.log(i,arr[i])
}
}