js数组常用高阶函数

1.filter()

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

注意: filter() 不会对空数组进行检测。

注意: filter() 不会改变原始数组。

    //filter()
    var arr = [1,2,3,4,5]
    const newArr1 = arr.filter((item) => {
        return item % 2 === 0;
    });
    console.log(newArr1); //[2,4]

2.map()

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map() 方法按照原始数组元素顺序依次处理元素。

注意: map() 不会对空数组进行检测。

注意: map() 不会改变原始数组。

array.map(function(currentValue,index,arr), thisValue)
    //map()
    var arr = [1, 3, 5, 7, 10];
    const newArr2 = arr.map((item) => {
      return item * 2;
    });
    console.log(newArr2); //[2,6,10,14,20]

3.forEach()

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

array.forEach(callbackFn(currentValue, index, arr), thisValue)

forEach() 本身是不支持的 continue 与 break 语句的,使用 return 语句实现 continue 关键字的效果

var arr = [1, 2, 3, 4, 5];
    arr.forEach((item, index, arr) => {
      console.log(item, index, arr);
    });

4.find() findIndex()

`**find()**` 方法返回数组中满足提供的测试函数的第一个元素的值

**findIndex()**方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回-1。

    var arr = [
        {
            id:'1',
            name:'a',
        },
        {
            id:'2',
            name:'b',
        },
        {
            id:'3',
            name:'a',
        }
    ]
    var obj = arr.find((item) => {
      return item.name === 'a';
    });
    var index = arr.findIndex((item) => {
      return item.name === 'a';
    });
    console.log(obj,index) //{id: "1", name: "a"} 0

5.every()

判断数组中每一项的数据是否满足设定的条件,只要找到不满足条件元素返回false,不继续向下执行,否则返回true

    var arr = [2,4,6,8]
    const state1 = arr.every((item) => {
        return item % 2 === 0;
    });
    const state2 = arr.every((item) => {
        return item > 5;
    });
    console.log(state1,state2)  //true false

6.some()

判断数组中的数据是否有满足条件的元素,只要找到满足条件的元素则返回 true,不继续向下执行; 否则返回false

    var arr = [2,3,4,5]
    const state3 = arr.some((item) => {
        return item % 2 === 0;
    });
    const state4 = arr.some((item) => {
        return item < 0;
    });
    console.log(state1,state2)  //true false

7.reduce()

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

reduce() 可以作为一个高阶函数,用于函数的 compose。

注意: reduce() 对于空数组是不会执行回调函数的。

array.map(function(currentValue,index,arr), thisValue)
    var arr = [1,2,3,4,5]
    const num1 = arr.reduce((a, b) => {
      return a + b;
    });
    console.log(num1);// 15
    const num2 = arr.reduce((a, b) => {
      return a + b;
    },10);
    console.log(num2); // 25

8.sort()

sort() 方法用于对数组的元素进行排序。

排序顺序可以是字母或数字,并按升序或降序。

默认排序顺序为按字母升序。

注意:当数字是按字母顺序排列时"40"将排在"5"前面。

使用数字排序,你必须通过一个函数作为参数来调用。

函数指定数字是按照升序还是降序排列。

这些说起来可能很难理解,你可以通过本页底部实例进一步了解它。

注意: 这种方法会改变原始数组!。

    //sort()
    var points = [40,100,1,5,25,10];
    points.sort(function(a,b){return a-b});
    console.log(points) // [1,5,10,25,40,100]

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值