ECMAScript 5中最常用的数组处理方法

1、forEach()   forEach(value,index,arr)方法从头至尾遍历数组,为每一个元素调用指定的函数。接收三个参数  value数组中的值,index是值的索引位置 arr就是数组本身

   var arr = [1, 2, 3, 4, 5];
    arr.forEach(function(value, index, arr) {
        console.log('value:' + value); //1,2, 3, 4, 5
        console.log('index:' + index); //0,1, 2, 3, 4
        console.log('arr:' + arr); //1,2,3,4,5
    })

2、filter()   filter(value,index,arr)方法返回的数组元素是调用的数组的一个子集。字面意思为筛选 接收三个参数  value数组中的值,index是值的索引位置 arr就是数组本身

 arr = [{
        istrue: false,
        data: [0, 1]
    }, {
        istrue: false,
        data: [0, 1]
    }, {
        istrue: false,
        data: [0, 1]
    }, {
        istrue: true,
        data: [0, 1]
    }];

    arr = arr.filter(function(value, index, arr) { //不对数组本身操作 需要接收
        if (value.istrue == true) {
            return value;
        }
    })

    console.log(arr); // [{istrue: true,data: [0, 1]}

3、map()   map(value,index,arr)方法将调用额数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值。接收三个参数  value数组中的值,index是值的索引位置 arr就是数组本身

  arr = [{
        istrue: false,
        data: [0, 1]
    }, {
        istrue: false,
        data: [0, 1]
    }];
    arr.map(function(value, index, arr) { //对数组本身进行操作 不需要接收

        value.istrue = true;
        return value;
    })

    console.log(arr); // [{istrue: true,data: [0, 1],{istrue: true,data: [0, 1]}

4、every()和some() every(value,index,arr)和some(value,index,arr)方法是数组的逻辑判断,他们对数组元素应用指定的函数进行判断,返回true或false。every判断是只要条件里面都是true 才返回true,否则返回false;some 判断是只要条件里面都是false 才返回false,否则返回true

arr = [{
        istrue: false,
        data: [0, 1]
    }, {
        istrue: false,
        data: [0, 1]
    }];
    var boolEvery = arr.every(function(value, index, arr) { //不对数组本身操作 需要接收bool
        return value.istrue;

    })

    var boolSome = arr.some(function(value, index, arr) { //不对数组本身操作 需要接收bool
        return value.istrue;
    })

    console.log(boolEvery) //false
    console.log(boolSome) //false

4、reduce和reduceRight  reduce(callbackfn,[initialValue])方法有两个参数,第一个参数是一个callback,用于针对数组项的操作;第二个参数则是传入的初始值,这个初始值用于单个数组项的操作。需要注意的是,reduce方法返回值并不是数组,而是形如初始值的经过叠加处理后的操作。callbackfn(preValue,curValue,index,array)方法有四个函数:preValue: 上一次调用回调返回的值,或者是提供的初始值(initialValue)curValue: 数组中当前被处理的数组项index: 当前数组项在数组中的索引值array: 调用 reduce()方法的数组
    //reduce方法最常见的场景就是叠加。
    //reduceRight()方法的功能和reduce()功能是一样的,不同的是reduceRight()从数组的末尾向前将数组中的数组项做累加。

var items = [10, 120, 1000];
    var reducer = function add(sumSoFar, item) {
        return sumSoFar + item;
    };
    var total = items.reduce(reducer, 0);
    console.log(total); // 1130 可以看出,reduce函数根据初始值0,不断的进行叠加,完成最简单的总和的实现。前文中也提到,reduce函数的返回结果类型和传入的初始值相同,上个实例中初始值为number类型,同理,初始值也可为object类型。

5、indexOf和lastIndexOf()  indexOf()和lastIndexOf()搜索整个数组中具有给定值的元素,返回找到得第一个元素的的索引,如果没有找到则返回-1







  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值