JS第八节 数组函数

本文介绍了JavaScript中的map()函数用于创建新数组,filter()用于数据过滤,reduce()实现数组累加。通过实例演示了如何使用这些方法处理数组并展示了它们与foreach的差异,以及map的链式操作。
摘要由CSDN通过智能技术生成

1.indexOf()
    返回数组中第一个找到元素的位置,不存在则返回-1
    a1=[23,45,67]
    a1.indexOf("ab")

2.for each  (for循环的一种)
调用方式: 
    数组.forEach(function(当前元素值,当前元素索引,数组对象){})

    //三种循环方式
    for(var i =0;i<10;i++){
        arr[i]
        循环体
    }
    for(var i in 数据集合){
        arr[i]
        循环体
    }
    var a1=[4,5,6,7,8]
    a1.forEach(function(item,index,arr){
        console.log(item,index,arr)
    })

    //前后台数据传输格式ajax 数据
    var data1=[{"name":"zs","age":23,"number":"00123"},
               {"name":"ls","age":32,"number":"0123"},
               {"name":"ww","age":30,"number":"80123"},]
    var sum=0
    var avg=0
    data1.forEach(function(item,index){
        console.log(item.name,item.age,item.number)
        sum+=item.age
        avg=parseInt(sum/(data1.length))
    })
    console.log(avg)

3.map  对数组每一项进行遍历,返回新数组
    a1=[3,4,5,6]  // 把a1变成 a2=[6,8,10,12]
    var a2 =  a1.map(function(item,index,arr){
        return item*2
    })
    console.log(a2)


*** map与forEach的区别
    1.foreach只是遍历,map生成新数组
    2.map比forEach速度快
    3.map可以进行链式操作

    a1=[3,4,5,6]
    var a2=a1.map(function(item,index,arr){
        return item*2
           }).map(function(item1){
        return item1*10
        })
    console.log(a2);


4.filter 数据过滤
    arr.filter(function(当前元素值,当前元素索引,数组对象){})
    (1)返回新数组,不对原数组修改
    (2)对返回"true"的结果过滤,返回"false"的结果忽略

    a1=[10,30,40,60,80] 提取出大于30的数据
    a2=a1.filter(function(item){
        return item>30
    })
    console.log(a2)


5.reduce 接收一个函数作为累加器,
        数组中的每一个值,从左到右开始缩减,最终计算为一个值
    arr.reduce(function(初始值,当前元素值,当前元素索引,数组对象){},初始值)
        初始值可以省略


6.some 判断数组是否有满足条件的元素
    (1)arr.some(function(当前元素值,当前元素索引,数组对象){})
    (2)函数内部,返回true,找到了满足条件的元素,则循环结束
               返回false,没找到,则循环继续
    (3)函数的执行次数不一定等于数组长度
    a1=[10,30,60] //判断数组是否有大于20的元素
    var a2 = a1.some(function(item,index,arr){
        return item>20
    })
    console.log(a2); // true


7.every 检测数组中所有元素是否都满足指定条件
    (1)arr.some(function(当前元素值,当前元素索引,数组对象){})
    (2)有一项不满足则返回false,都满足则返回true
    (3)函数的执行次数不一定等于数组长度

    a1=[10,30,5,60]
    var a2 = a1.every(function(item,index,arr){
        return item>0
    })
    console.log(a2); // true

every   一假即假
some    一真即真

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值