forEach()方法原理
let fn = function(item,i,arr) {
console.log(item)
console.log(i)
}
let animous = ['cat','pig','dog','brid']
animous.__proto__.forEvery = function(fn){
for(let i=0;i < this.length;i++){
fn(this[i],i,this)
}
}
animous.forEvery(function(item,i,arr){
document.write('<h3>'+item+'-'+'</h3>')
})
map()方法原理
animous.__proto__.forMap = function(fn){
let arr = []
for(let i = 0;i < this.length;i++){
arr[i] = fn(this[i],i,this)
}
return arr
}
let arr2 = animous.forMap(function(item){
return item +'---'
})
console.log(arr2)
filter()方法原理
let num = [1,2,22,345,567,231]
num.__proto__.myflter = function(fn){
let arr = []
let j = 0
for(let i = 0; i < this.length;i++) {
if(fn(this[i],i,this)) {
arr[j] = this[i]
j++
}
}
return arr
}
let arr4 = num.myflter(function(item,i,arr){
if(item > 100) {
return true
}else{
return false
}
})
console.log(arr4)