重写js数组方法every()和some()
var obj=[
{
id:1,
job:0
},
{
id:2,
job:0
},
{
id:3,
job:1
},
{
id:4,
job:1
},
];
// obj.every(function(elem,index,array){
// console.log(elem);
// return elem.job=='1'
// })
//every:只要有不满足条件的就停止遍历
Array.prototype.myEvery=function(fn){
var arr=this,
len = arr.length,
arg = arguments[1] || window,
newArr = [],
i;
for(i=0;i<len;i++)
{
if(!fn.apply(arg,[arr[i],i,arr])){
break
}
}
return false
}
// some: 只要有一个满足条件的就停止遍历
Array.prototype.mySome=function(fn){
var arr=this,
len = arr.length,
arg = arguments[1] || window,
newArr = [],
res=false,
i;
for(i=0;i<len;i++)
{
if(fn.apply(arg,[arr[i],i,arr])){
res=true
break
}
}
return res
}
console.log(obj);
obj.myEvery(function(elem,i,array){
console.log(elem);
return elem.job=='0'
})
console.log(obj);
obj.mySome(function(elem,i,array){
console.log(elem);
return elem.job=='0'
})