什么是高阶函数?
//1.把一个函数当做另外一个函数的参数,也是高阶函数,同时还是回调函数
//2.一个函数,内部返回外面一个函数,也是高阶函数 闭包
//some 如果有一个条件满足,就返回true
// every 所有的条件满足才返回true;
// filter 过滤
// forEach 都能做遍历,没有返回值
// map 返回一个新的数组 ,更加注重返回结果
some 如果有一个条件满足,就返回true
var arr = [11, 22, 33, 44, 55];
//el,每一个成员
//index,每个成员的下标
//aaa 原来的数组
//默认返回false
var res = arr.some(function (el, index, aaa) {
return el == 33
})
console.log(res);//true
every 所有的条件满足才返回true;
//el,每一个成员
//index,每个成员的下标
//aaa 原来的数组
var arr = [11, 22, 33, 44, 55];
var res = arr.every(function (el, index, aaa) {
return el > 30
})
console.log(res);//false
filter 过滤 返回一个新的数组
//找出所有大于20的,并放到一个新的数组里
var arr = [11, 22, 33, 44, 55]; //大于20
var newArr = arr.filter(function (el) {
return el > 20
})
console.log(newArr);//[22, 33, 44, 55]
// var newArr = [];
// for (var i = 0; i < arr.length; i++) {
// if (arr[i] > 20) {
// newArr.push(arr[i]);
// }
// }
forEach 纯粹只做遍历 不能被中断 想中断可以用异常处理 没有返回值
// for 可以用return , break 中断
var arr = [11, 22, 33, 44, 55];
var res = arr.forEach(function (el, index, aaa) {
console.log(el, index, aaa);
})
console.log(res);//undefined
map 也是做遍历,有返回值,返回是新数组
var arr = [11, 22, 33, 44, 55];
//请将每个元素放大10倍,得到一个新数组
var arr1 = arr.map(function (el, index) {
return el * 10
})
console.log(arr1);
console.log(arr);
reduce 累加器
//pre 初始值
//cur
//index 下标
//aaa 原数组
// 第二个参数100,就是给pre设置初始值,第二个参数没写的话,这里初始值就是11
//return 没有返回值的话 ,第二次开始pre 的返回值为undefined
var arr = [11, 22, 33, 44, 55];
arr.reduce=(function(pre,cur,index,aaa){
console.log(pre,cur,index);
return index
} ,100)
网友评论