数组方法扩展 find() findIndex() reduce()

1. find方法

作用:用来查找符合条件的元素,返回的是值

注意:查找到第一个指定的元素就不再查找后面的元素

注意:不改变数组原有的值

注意:不处理空数组

下面的代码解释:

1.发现控制台输出索引index时,只会输出0,因为数组的第一个值1就是小于3,那么后面的代码都不再执行。

2.因为返回值是数组的值,所以常量a的值是1

         let arr = [1, 2, 3, 4, 5];
         const a = arr.find(function (value, index) {
             console.log(index);
             // return value > 4;
             return value < 3;
         })
         console.log(a);

其它写法1:箭头函数

注意:箭头函数,只有一个参数,可以省略形式参数的括号,函数执行体就是函数的返回结果时,可以省略return和花括号

        var arr2 = [
             {
                 id: 1,
                 name: '李四',
             },
             {
                 id: 2,
                 name: '张三'
             },
             {
                 id: 1,
                 name: '李四四'
             }
         ];
         let target = arr2.find(item => item.id === 1);
         // let target = arr2.find((item) => { return item.id === 1 });
         console.log(target);
         let target2 = arr2.find(item => item.id === 3);
         console.log(target2);// undefined 因为不存在id 等于3的值

其它写法2:

提前声明函数,直接函数名作为find里面的参数即可。

         let arr = [1, 2, 3, 4, 5];
         function fn(value) {
             return value > 3;
         }
         const b = arr.find(fn);
         console.log(b);

详细查看菜鸟教程:JavaScript find() 方法 | 菜鸟教程

1.7 findIndex()方法

作用: 用来查找符合条件的元素,返回的是值的索引

注意:查找到第一个指定的元素就不再查找后面的元素

注意:查不到满足条件的值就会返回-1

下面的代码解释:

1.发现控制台输出索引index时,只会输出0,因为数组的第一个值1就是小于3,那么后面的代码都不再执行。

2.因为返回值是数组的值的索引,所以常量a的值也是0

         let arr = [1, 2, 3, 4, 5];
         const a = arr.findIndex(function (value, index) {
             console.log(index);
             // return value > 4;
             return value < 3;
         })
         console.log(a);

其它写法1:箭头函数

         var list = [
             {
                 id: 1,
                 name: '李四',
             },
             {
                 id: 2,
                 name: '张三'
             },
             {
                 id: 1,
                 name: '李四四'
             }
         ];
         let target = list.findIndex((item) => { return item.id === 1 });
         console.log(target);// 只打印0
         let target2 = list.findIndex(item => item.id === 3);
         console.log(target2);// -1

其它写法2:

提前声明函数,直接函数名作为findIndex里面的参数即可。

最终输出3,表示索引为3的值4,它是大于3的,后面5不再执行函数

         let arr = [1, 2, 3, 4, 5];
         function fn(value) {
             return value > 3;
         }
         const b = arr.findIndex(fn);
         console.log(b); // 3 

3. reduce()

作用:数组求和

reduce里面跟回调函数:参数1是求和值,参数2是遍历数组中的值;100是累加初始值【任意】

        var arr = [1, 3, 5, 99, 100];
        const num = arr.reduce(function (sum, val) {
            return sum += val;
        }, 100);
        console.log(num); // 208
        // 箭头函数写法
        // const num = arr.reduce((sum, val) => sum += val, 0);
        // console.log(num); // 208

--后面还会补充includes方法

结尾:

学习id: 201903090124-40

现在是大三学生,学习到了vue阶段,如有不对的地方,欢迎指正,一起努力呀。如有转载请注明出处

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值