「这是我参与2022首次更文挑战的第6天,活动详情查看:2022首次更文挑战」。
我个人觉得要想进大厂,就必须学习了解算法和数据结构,经历了多次面试之后,也知道了算法和数据结构的重要性,所以,我也打算从今天开始,进入学习,下载了一下电子书,边看书,边跟着书的例子来敲一下代码,下面就开始总结一下对算法和数据结构的学习吧。
第六天:继续了解数组
迭代器函数
js内置了许多数组可用的迭代方法。对于本节的例子,我们需要
-
every
对数组中的每个元素运行给定函数,如果该函数对每个元素都返回 true,则返回 true
如果我们想要如果数组中的元素里都是偶数的话,则返回true,否则返回false,就可以用下面的方法求出来
let arr = [1,2,3,4,5] const isEven = x => x % 2 === 0; arr.every(isEven);如果找到了不是偶数(奇数)之后,他就是停止执行循环,并返回false,所以上面的返回是false。
-
some
对数组中的每个元素运行给定函数,如果任一元素返回 true,则返回 true
some 方法。它和 every 的行为相反,会迭代数组的每个元素,直到函 数返回 true。
arr.some(isEven);只要有一个是偶数,就返回true,否则返回false,所以上面的结果是返回true
-
forEach
对数组中的每个元素运行给定函数。这个方法没有返回值
arr.forEach(item => console.log(item))上面会输出每一个元素的值,所以上面的输出是1,2,3,4,5
但是它有一个特点,那就是它没有返回值
-
map
对数组中的每个元素运行给定函数,返回每次函数调用的结果组成的数组
arr.map(item => item * 2)上面会返回函数里面处理过后的数组,并且不会改变原来的数组
所以上面返回的结果是[2,4,6,8,10]
-
filter
对数组中的每个元素运行给定函数,返回该函数会返回 true 的元素组成的数组
arr.filter(item => item % 2)filter是过滤,他会过滤掉函数为true的元素,所以上面的结果是[1,3,5]
-
reduce
reduce 方法接收一个有如下四个参数的函数:previousValue、 currentValue、index 和 array。因为 index 和 array 是可选的参数,所以如果用不到它们 的话,可以不传。这个函数会返回一个将被叠加到累加器的值,reduce 方法停止执行后会返回 这个累加器。如果要对一个数组中的所有元素求和,这就很有用。下面是一个例子。
arr.reduce((previous, current) => previous + current);上面,我们没有reduce的第二个参数,所以它默认值是数组的第一个元素,所以最后的输出结果是15