// 高阶函数 -- 函数作为参数
// 模拟foreach
function forEach(array,fn){
for(let i=0; i<array.length; i++){
fn(array[i])
}
}
// 测试
let arr = [1,2,3,4,6];
forEach(arr, function(item) {
console.log(item)
})
// filter
function filter(array, fn){
let newArr = [];
for(let i=0; i<array.length; i++){
if(fn(array[i])){
newArr.push(array[i])
}
}
return newArr;
}
// 测试
let arr1 = [1,2,3,4,6];
let result = filter(arr1, function(item) {
return item % 2 === 0;
})
console.log(result)
// 模拟高阶函数 :map every some
//map
const map = (array,fn) => {
let newArr = [];
for(let value of array){
newArr.push(fn(value))
}
return newArr;
}
let arr = [1,4,5,68,2];
arr = map(arr,function(item){
return item = item * item
})
console.log(arr)
//模拟 every 判断数组中的每一个元素是否都匹配指定的条件
const every = (array,fn)=>{
let isOk = true;
for(let value of array){
isOk = fn(value);
if(!isOk){
break;
}
}
return isOk;
}
let arr1 = [0,3,4,6,7,8];
let isevery = every(arr1, item => item > 2)
console.log(isevery)
//模拟 some 判断数组中的有一个元素匹配指定的条件
const some = (array,fn)=>{
let isOk = false;
for(let value of array){
isOk = fn(value);
if(isOk){
break;
}
}
return isOk;
}
let issome = some(arr1, item => item > 2)
console.log(issome)
js自定义数组高阶函数
最新推荐文章于 2024-07-04 21:01:43 发布
这篇博客介绍了JavaScript中常用的高阶函数,包括模拟实现的forEach用于遍历数组,filter用于筛选符合条件的元素,map用于对数组元素进行映射操作,以及every和some用于判断所有或至少一个元素满足特定条件。通过实例代码展示了这些函数的用法和应用场景。
摘要由CSDN通过智能技术生成