迭代器:forEach、some、every、reduce

本文介绍了JavaScript中的几个重要数组方法,包括forEach用于遍历数组,myEach作为自定义的遍历器,some和every分别用于检查数组中是否存在满足条件的元素并返回布尔值,以及reduce用于对数组元素进行累加计算。通过示例代码展示了这些方法的使用和功能。
摘要由CSDN通过智能技术生成

1. arr.forEach(回调函数(当前元素,当前元素下标,当前数组) ) 用于遍历数组

var arr=[100,200,300,400,500];
        // 1. arr.forEach(回调函数(当前元素,当前元素下标,当前数组) ) 用于遍历数组
        arr.forEach(function(ele,index,arr){
            if (ele>300) {
                return;
            }//打印到300结束
            console.log(ele,index,arr);
        })

练习:自己封装一个功能类似foreach的遍历器

         Array.prototype.myEach=function(callback){
                for(var i=0;i<this.length;i++){
                    callback(this[i],i,this)
                }
            }
            arr.myEach(function(ele,index,arr){
                console.log(ele,index,arr);
            })

2. some():返回布尔值,只要一个条件满足就返回true

        var arr=[100,200,300,400,500];
        // 2. some():返回布尔值,只要一个条件满足就返回true
        // 遇真短路
        var a=arr.some(function(ele,index,arr){
            console.log(ele,index,arr);
            return ele>300;//返回布尔值 400是第一个满足的条件,返回true
            // 满足条件返回true之后 就不再打印了
        })
        console.log(a);

 3. every()  只要有一个条件不满足就返回false

        var arr=[100,200,300,400,500];
        var b=arr.every(function(ele,index,arr){
            console.log(ele,index,arr);
            return ele<400;
        
        })
        console.log(b);//false

练习:判断数组中是否含有非数

            var arr1=[100,200,"a",300];
            var result=arr1.every(function(ele,index,arr){
            return (typeof ele=="number");
            })
            console.log(result);//false  有非数字类型 

 4. reduce(); 累加prep=上一次调用函数的返回值  initValue是初始值

        // arr.reduce(function(prep,ele,index,arr) { },initValue)
        arr=[100,200,300,400]
        var totle=arr.reduce(function(prep,ele,index,arr) { 
            console.log(prep);
            return prep+=ele;
        },0)
        console.log(totle);//1000

练习:计算购物车总价

 var product = [
            {
                type: "衣服",
                num: 3,
                price: 20
            },
            {
                type: "裤子",
                num: 4,
                price: 10
            },
            {
                type: "帽子",
                num: 1,
                price: 10
            },
        ];
        var totle=product.reduce(function(prep,ele,index,product) {
            prep += (ele.num)*(ele.price);
            return prep;
        },0)
        console.log(totle);//110

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值