ZhangYang's Blog

forEach和sort的实现

看了数组的一些源码,总结了规律,典型的forEach和sort的实现,基本上其他ES5数组的方法实现也是照葫芦画瓢

forEach

1
2
3
4
5
6
7
8
9
10
Array.prototype.myForEach = function(fn){
var len = this.length;
for(var i = 0; i < len; i ++){
//将元素传给回调函数
fn(this[i],i);
}
}
arr.myForEach(function (ele, index){
console.log(ele, index);
})

sort原理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var arr = [1, 2, 3, 4, 5]
Array.prototype.myMap = function(fn){
var len = this.length;
//创建新数组
var arr = [];
for(var i = 0; i < len; i ++){
arr.push(fn(this[i],i))
}
return arr;
}
var aa = arr.myMap(function(ele, index){
return ele * 2;
})
console.log(aa);