//once 函数 (高阶函数-函数作为返回值)
function once(fn){
console.log(fn);
let done=false
return function(){
if(!done){
done=true
return fn()
}
}
}
//forEach 函数(高阶函数-函数作为参数)
function forEach(array,fn){
for(let i=0;i<array.length;i++){
fn(i,array[i])
}
}
const arr=[1,2,3,4]
forEach(arr,(item,index)=>{
console.log(item);
console.log(index);
})
//filter 函数(高阶函数-函数作为参数)
function filter(array,fn){
let result=[]
for(let i=0;i<array.length;i++){
if(fn(array[i])){
result.push(array[i])
}
}
return result
}
const arr1=[1,23,34,5]
let r=filter(arr1,(item)=>{
return item>20
})
console.log(r);