7.6、数组的常用方法reduce高级用法,find findIndex

本文介绍了JavaScript中的数组迭代方法reduce,强调了其在计算数组元素总和上的应用。通过示例展示了如何使用reduce计算数组中所有store属性的总和,并对比了reduce与其他数组方法如find和findIndex的区别和用法。此外,还提供了计算数组元素总和的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、简介:数组的迭代方法有很对,为什么要说reduce呢?
人生哲理:通往成功的道路有很多,总有最好的捷径
2、语法:arr.reduce(callback,[initValue])
数组中的每一项都执行给定回调函数,回调函数接受四个参数previousValue(初始值),currentValue(当前的值),index(索引),array(数组本身)

initValue作为第一次调用回调函数的初始值,如果没有initValue,会默认从数组索引为1的项开始执行回调函数
最直接的用法:计算数组中所有store的和

   var arr = [{
                id: 1,
                name: "zs",
                store: 99,
                sex: "男"
            },
            {
                id: 2,
                name: "ls",
                store: 89,
                sex: "男"
            },
            {
                id: 3,
                name: "ww",
                store: 30,
                sex: "男"
            },
            {
                id: 4,
                name: "zl",
                store: 60,
                sex: "男"
            }
        ]
       
        // reduce(函数(上一次运行完的返回值,item,index),初始值)
        val第一次的值是初始值0执行函数的结果 所以是:0 + 99
        val第二次的值是第一次执行函数的结果执行函数的结果 99+89
        val第三次的值是第二次执行函数的结果执行函数的结果 188+ 30
        val第四次的值是第三次执行函数的结果执行函数的结果218 + 60
        最终sum = 278
        var sum = arr.reduce((val, item, index, arr) => {
            return val += item.store
        }, 0)

 		//    find 查询出满足条件的第一条数据
            var Val = arr.find((item,index)=>{
                 console.log(item,index)
                 return item.store>60
             })
        //     console.log(Val); //{id: 1, name: "zs", store: 99, sex: "男"}

		// findIndex  返回满足第一个满足条件的数组项的下标
        // var Val = arr.findIndex((item,index)=>{
        //     // console.log(item,index);
        //     return item.store>60
        // })
        // console.log(Val);//0

		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值