断言函数
断言函数接收3 个参数:元素、索引和数组本身。
元素:数组中当前搜索的元素
索引:当前元素的索引
数组:正在搜索的数组
常用断言函数
jian
- find():返回第一个匹配的元素
- findIndex():返回第一个匹配元素的索引
迭代函数 - every():对数组每一项都运行传入的函数,如果对每一项函数都返回true,则这个方法返回true。
- some():对数组每一项都运行传入的函数,如果有一项函数返回true,则这个方法返回true。
- filter():对数组每一项都运行传入的函数,函数返回true 的项会组成数组之后返回。
- forEach():对数组每一项都运行传入的函数,没有返回值。
- map():对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组。
归并函数
函数接收4 个参数:上一个归并值、当前项、当前项的索引、数组本身
返回的任何值都会作为下一次调用同一个函数的第一个参数 - reduce():从数组第一项开始遍历到最后一项
- reduceRight():从最后一项开始遍历至第一项
alert(people.find((element, index, array) => element.age < 28));
// {name: "Matt", age: 27}
alert(people.findIndex((element, index, array) => element.age < 28));
// 0
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
let everyResult = numbers.every((item, index, array) => item > 2);
alert(everyResult); // false 需要每个元素都>2才能返回true
let someResult = numbers.some((item, index, array) => item > 2);
alert(someResult); // true 有一个元素>2就返回true
let filterResult = numbers.filter((item, index, array) => item > 2);
alert(filterResult); // 3,4,5,4,3 筛选>2的元素
let mapResult = numbers.map((item, index, array) => item * 2);
alert(mapResult); // 2,4,6,8,10,8,6,4,2 返回一个新数组(数组中每个元素都进行了函数操作)
//forEach方法相当于for循环遍历数组
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1];
numbers.forEach((item, index, array) => {
// 执行某些操作
numbers[index] = item * 2;
});
alert(numbers); // 2,4,6,8,10,8,6,4,2
/*
使用reduce()函数执行累加数组中所有数值的操作
第一次执行归并函数时,prev 是1,cur 是2。第二次执行时,prev 是3(1 + 2),cur 是3(数
组第三项)。如此递进,直到把所有项都遍历一次,最后返回归并结果
*/
let values = [1, 2, 3, 4, 5];
let sum = values.reduce((prev, cur, index, array) => prev + cur);
alert(sum); // 15
所有博客均为自己学习的笔记。如有错误敬请理解。