1.some():返回一个Boolean,判断当前数组中是否有一个数据满足条件
源码:
MySome:function MySome(){
var fn = arguments[0];
for(var i = 0;i<this.length;i++){
// 只有有一项,满足就返回true
if(fn(this[i],i)){
return true;
}
}
return false;
},
2.every():返回一个Boolean,判断当前数组中是否所有数据都满足条件
MyEvery:function MyEvery(){
var obj = arguments[1] || window;
var fn = arguments[0];
for(var i = 0;i<this.length;i++){
// 如果第数据就不满足要求 直接返回false
if(!fn.call(obj,this[i],i,this)){
return false;
}
}
// 在循环结束后 如果还没有return false
return true;
},
3.map 返回 一个新数组,并且是当前数组中经过处理的数据
var arr =[68,22,33]
Array.prototype.myMap=function(){
var fn=arguments[0]
var target=arguments[1]||window
var newArr=[];
for(var i=0;i<this.length;i++){
newArr.push( fn.call(target,_arr[i],i,this))
}
}
arr.myForeach(function(){
console.log(arguments)
console.log(this)
})
4.forEach:遍历数据
var arr=[1,2,3]
Array.prototype.myForeach=function(value,index,_arr){
//获取第一个参数
var fn =arguments[0]
//获取第二个参数
var target=arguments[1]||window
var _arr=this;
for(var i=0;i<this.length;i++){
fn.call(target,_arr[i],i,this)
}
}
arr.myForeach(function(){
console.log(arguments)
console.log(this)
})