filter的作用
创建了一个新数组,新数组中是符合条件的所有元素
Array.prototypr.myfilter = function(fn,context){
if(typeof fn !== "function"){
return
}
const arr = this
const temp = []
for(let i=0;i<arr.length;i++){
let flag = fn.call(context,arr[i],i,arr)
if(flag){
temp.push(arr[i])
}
}
return temp
}
every的作用
查询数组中元素是否都满足要求,都满足则返回true,否则返回false
Array.prototypr.myevery = function(fn,context){
if(typeof fn !== "function"){
return
}
const arr = this
let res = true
for(let i=0;i<arr.length;i++){
let flag = fn.call(context,arr[i],i,arr)
if(!flag){
res = false
break
}
}
return res
}
some的作用
查询数组中是否有元素满足要求,有满足则返回true并且不再往下执行,否则返回false
Array.prototypr.mysome = function(fn,context){
if(typeof fn !== "function"){
return
}
const arr = this
let res = false
for(let i=0;i<arr.length;i++){
let flag = fn.call(context,arr[i],i,arr)
if(flag){
res = true
break
}
}
return res
}
flat的作用
扁平化数组,例如将二维数组转换成以为数组,三维数组转成一维二维数组。接受一个参数,不传入默认是1,表示拉平的层数。
Array.prototype.myFlat = function(n){
const arr = this
let resArr = []
const dealArr = (data,i = 1)=>{
data.forEach((item)=>{
if(Array.isArray(item) && i !==0){
dealArr(item,i-1)
}else{
resArr.push(item)
}
})
}
dealArr(arr,n)
return resArr
}
let arr = [1,2,2,[3,4,4,[44]]]