0
点赞
收藏
分享

微信扫一扫

数组中的some,every,reduce方法复习

双井暮色 2022-05-03 阅读 76

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
举报

相关推荐

0 条评论