数组中的some,every,reduce方法

1.some方法和forEach区别

        const arr = ['小红', '小明', '张三', '李四']
            //需求 查找张三的索引
            //可以用forEach循环,但性能较差。原因:找到张三后,后面的循环理应终止,但forEach循环无法被终止
        arr.forEach((item, index) => {
            if (item === '张三') {
                console.log(index);
            }
            console.log(index); //这行代码可以判断forEach循环执行了整个循环(且forEach无法使用break,或者return终止函数)
        })

        //some方法,如果查找到了符合条件的元素,则终止循环。
        arr.some((item, index) => {
            if (item === '张三') {
                // 扎到对应项之后,可以用过return true 固定语法来终止some循环
                return true
            }
        })

2. 数组中every方法


        //数组中的every方法,数组中所有元素满足条件则返回true,只要有一个不满足条件就返回false
        const arr = [{
            id: 1,
            name: '西瓜',
            state: true
        }, {
            id: 2,
            name: '草莓',
            state: true
        }, {
            id: 3,
            name: '桃子',
            state: true
        }]
        const result = arr.every(item => item.state) //true

3.数组的reduce方法


        //数组中的reduce方法,需求计算数组中商品的总价
        //分析reduce函数。reduce((累加的结果,当前循环项)=>{},初始值)
        const arr = [{
            id: 1,
            name: '西瓜',
            state: true,
            price: 10,
            count: 1,

        }, {
            id: 2,
            name: '草莓',
            state: true,
            price: 20,
            count: 3,
        }, {
            id: 3,
            name: '桃子',
            state: true,
            price: 15,
            count: 3,
        }]
        const result = arr.reduce((amt, item) => {
            return amt += item.price * item.count
        }, 0)
        console.log(result); // 115
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

godlike-icy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值