什么是高阶函数
当一个函数接受另一个函数作为参数,或者返回一个函数时,此函数被称为高阶函数。
函数和方法的区别
函数function: 独立的function,那么称之为是一个函数:如:
function foo() {}
方法method: 当一个函数属于某一个对象时,我们称这个函数时这个对象的方法。
var obj = { foo: function(){} }
高阶函数
-
filter:过滤
- filter返回一个新的数组,接收函数的返回值类型是Boolean类型
var nums = [10, 5, 11, 100, 55] var Newnum = nums.filter((item, index, arr) =>{ return item % 2 === 0 })
-
map: 映射
-
返回一个新数组。
var nums = [10, 5, 11, 100, 55] varnewNums = nums.map((item) =>{ return item * 10 })
-
-
forEach: 迭代
-
无返回值
var nums = [10, 5, 11, 100, 55] nums.forEach((item) =>{ console.log(item) })
-
-
find/findIndex
-
精准查到,返回查到的具体值/索引
var nums = [10, 5, 11, 100, 55] var item = nums.find((item) =>{ return item === 11 }) console.log(item) //11 //------------------------------------- var friends = [ {name: "why", age: 18}, {name: "kobe", age: 40}, {name: "james", age: 35}, {name: "curry", age: 30}, ] var findFriend = friends.find((item) =>{ return item.name === "james" }) console.log(findFriend) // {name: "james", age: 35} var friendIndex = friends.findIndex(function(item) { return item.name === 'james' }) console.log(friendIndex)// 2
-
-
reduce: 累加
-
prevValue:上一次执行返回的结果,
-
第一次怎么办呢?0就是第一次初始化的值,自定义
-
var nums = [10, 5, 11, 100, 55] var total = nums.reduce((prevValue, item) =>{ return prevValue + item },0) // 0 代表初始化的值
-