1.我们以前大多数时候对于数组的处理都是使用的for循环或者for in 循环 或者for of 循环 或者foEach循环,很多时候对于处理数组的一些需要比较复杂冗长,所以js中有很多的函数可以代替以前的for循环来实现更好更多更快的功能,filter map reduce依次列举一下他们的作用以及使用方法代码如下:
<script>
const arr = [1, 12, 4, 5, 4, 8, 5, 87, 6, 56, 8, 9];
//以前的方式循环判断
//函数中的高阶函数 filter map reduce
//filter中的回调函数必须返回一个boolean值
//当返回一个true时,函数内部会自动将这次回调的n加入到新的数组中
//当返回false时,函数内部会过滤掉这次的N
//1.filter的使用方法
// let newarr = arr.filter(function(n){
// return n < 100//因为这里返回的是boolean值,当n<100时返回就是true 就会添加至新数组中,当n>100时返回的就是false就不会添加了
// })
// console.log(newarr)
//2.数组中的每一个数都*2使用map函数来实现
// let arr1 = arr.map(function(n){
// return n*2
// })
// console.log(arr1)
//3.reduce函数的使用
//reduce函数的作用是对数组中所有的内容进行汇总
// let total = arr.reduce((preValue,n)=>{
// return preValue + n
// },0)
// let total = arr.filter((n) => {
// return n < 100;
// }).map((n) => {
// return n * 2;
// }).reduce((prevValue, n) => {
// return prevValue + n
// }, 0)
//上面的代码等价于下面的代码
let total = arr.filter(n => n < 100).map(n => n * 2).reduce((pre, n) => pre + n);
console.log(total)
</script>