重写some()
Array.prototype.mySome=function(fn){
//var arr=this;
for(var i=0;i<this.length;i++){
var bool = fn(this[i],i,this);
if(bool) return true;
}
return false;
};
Array.prototype.mySome=function(fn){
//var arr=this;
for(var i=0;i<this.length;i++){
var bool = fn(this[i],i,this);
if(bool) return true;
}
return false;
};
var arr=[1,2,34,,5,6,42,21,4];
var result = arr.mySome(function(item,index,arr){ return item >100; });
console.log(result);
重写every()
Array.prototype.myEvery = function (fn) {
for (var i = 0; i < this.length; i++){
var bool = fn(this[i], i, this);
}
//如果都满足返回true
if (bool) return true;
}
重写filter()
Array.prototype.myFilter = function (fun) {
var result = [];
for (var index in this) {
var bool = fn(this[index], index, this);
// 满足条件的添加到数组
if (bool) result.push(this[index]);
}
return result;
}
重写map方法
Array.prototype.myMap = function (fn) {
var result = [];
//遍历传入的数组
this.forEach(function (v, k, arr) {
var r = fn(v, k, arr);
result.push(r);
});
重写foreach方法
Array.prototype.myforEach = function (fn) {
for (var index in this){
console.log(this[index]);
}
}