目录
高阶函数:如果一个函数的参数或返回值是函数,则这个函数被称为高阶函数
回调函数:把一个函数当做一个参数传递到另一个函数当中,当需要用这个函数时,再回调运行这个函数
回调函数是一个可执行的代码片段,它作为一个参数传给其他的代码,起作用是在需要的时候方便调用这段(回调函数)代码
1.find
数组名.find:找出第一个符合条件的数组成员,它的第一个参数是回调函数
let arr = Array.of(1,2,3,4,5,6,'hello',[1,2])
// 找出数组内第一个大于3的元素,并返回该元素,
// 括号内是箭头函数的简写形式
let num = arr.find((val) => val > 3)
// 未简写
let num2 = arr.find((val)=>{
return val > 3
})
2.findIndex
找出第一个符合条件的数组成员的索引值,它的第一个参数是回调函数
let arr = Array.of(1,2,3,4,5,6,'hello',[1,2])
let num = arr.findIndex((val) => val > 3)
3.keys/values
keys:遍历数组的元素的索引(下标) values:遍历数组的值
// keys()
let arr = [1,'hello',true,[1,2,3]]
for(let val of arr.keys()){
console.log(val);// 结果:0 1 2 3
}
for(let key of arr.values()){
console.log(key); // 结果:1 'hello' true [1,2,3]
}
4.entries
遍历数组的的键值对
let arr = [1,'hello',true,[1,2,3]]
for(let val of arr.entries()){
console.log(val);
}
结果
5.includes(常用)
检查数组是否包含某个指定的值,返回一个布尔值(包含为true,反之false)
let arr = [1,'hello',true,[1,2,3]]
console.log(arr.includes(1));
6.sort
1.sort用来对数组进行排序(会改变原来数组)
1.1:sort默认将数组升序排列
1.1.1:注意:sort默认会按照Unicode编码进行排序,所以如果直接通过sort对数字进行排序 可能会得到一个不正确的结果
2.参数
传递回调函数指定排序规则
(a,b) => a-b 升序排列
(a,b) => b-a 降序排列
let arr = [2,3,6,9,0,8,5,4,1]
arr.sort((a,b)=> b-a)
console.log(arr);
7.forEach
1.用于遍历数组,会传递一个回调函数作为参数,数组中有几个元素,回调函数则会被调用几次
2.回调函数中有三个参数
element 当前元素
index 当前元素的索引
array 被遍历的数组
let arr = ['孙悟空','猪八戒','沙和尚']
arr.forEach((element,index,array)=>{
return element
})
8.filter
将数组中符合条件的元素保存到一个新的数组中(过滤数组中的元素)
需要一个回调函数作为参数,根据返回值决定是否将新元素添加到新数组中
let arr = ['孙悟空','猪八戒','沙和尚']
let result = arr.filter((ele) => ele === '孙悟空')
console.log(result);
9.map
根据当前数组生成一个新的数组
需要一个回调函数作为参数,回调函数的返回值会成为新数组中的元素
let person = [
{name:'张三',age:18},
{name:'李四',age:22},
{name:'王五',age:15},
]
let result = person.map((v)=>v.name)
console.log(result);
10.reduce
将数组中的所有严肃整合为一个值
参数:
1.回调函数:通过回调函数来指定合并规则
2.可选参数:初识值
let arr = [2,3,6,9,0,8,5,4,1]
let result = arr.reduce((a,b) => a+b,10)