今天聊聊forEach;
首先看看foreach的用法:
1. 原生JS的forEach:
参数:value数组中的当前项, index当前项的索引, array原始数组;
var ary = [1,2,3,4];
ary.forEach(function (value,index,array) {
console.log(value+"------"+index +"------------"+array);
})
输出结果:
1------0------------1,2,3,4
2------1------------1,2,3,4
3------2------------1,2,3,4
4------3------------1,2,3,4
2. jQuery的$.each
参数:index当前项的索引;value数组中的当前项;array要遍历的数组;
var ary = [1,2,3,4];
$.each(ary,function(index, value, array) {
console.log(index+"------"+ value);
});
输出结果:
0------1
1------2
2------3
3------4
如果浏览器不支持foreach方法,那么需要我们自己封装一个都兼容的方法,代码如下:
if( !Array.prototype.forEach) {
Array.prototype.forEach = function forEach(callback){
// 获取数组长度
var len =this.length;
if( typeof callback != "function" ) {
throw new TypeError() ;
}
// thisArg为callback 函数的执行上下文环境
var thisArg = arguments[1];
for(vari =0; i < len; i++) {
if ( i in this ) {
// callback函数接收三个参数:当前项的值、当前项的索引和数组本身
callback.call( thisArg , this[i] , i , this ) ;
}
}
}
}