zoukankan      html  css  js  c++  java
  • 数组内置的一些处理方法

    在JS中个,数组是一个Array对象,有它自己内置的方法,今天来说一部分,可以去除循环,来实现对数组的遍历并且进行一定的操作

    1.forEach

    数组遍历方法,用在数组的遍历上,参数是一个回调函数,函数会传入数组的每一个数值,如果数组索引被修改了,那么遍历会继续沿着索引向下。例如:

    1 var array = [1,2,3,4,5];
    2 array.forEach(function(data){
    3     console.log(data);//1,2,3,5
    4     if(data==3){
    5         a = array.shift();//shift函数移除数组的第一个元素
    6         alert(a);//弹出1
    7     }
    8 });

    2.map

    这个方法会返回一个新数组,这个数组里面的值是回调函数里面放回的值。

    var array = [1,2,3,4,5];
    array = array.map(function(data){//map函数返回一个数组,数组中的每个元素都是回调函数放回的值
        return data*2;
    });
    console.log(array);//2,4,6,8,10

    3.every

    这个方法会根据传入的参数最后返回的boolean值来判断,如果传入的参数的值都满足了回调函数里面的要求,即都返回了true的话,那么every函数也返回true,只要有一个不满足,返回了false的话,那么最后every函数返回的结果就是false

    var array = [1,2,3,4,5];
    var flag = array.every(function(currentValue){//测试数组中的每一个值是否都满足条件,即都返回true
        if(currentValue<6){
            return true;
        }
    });
    console.log(flag);//true

    4.some

    与every函数对应的方法是some,some只需要求传入的参数有一个满足要求,即只需要有一个返回的是true,那么这个函数返回的就是true,要想函数返回的是false,就要求传入的参数都不满足回调函数里的要求,即都是false

    var array = [1,2,3,4,5];
    var a = array.some(function(currentValue){//只要有满足条件的,就是true
        return currentValue>4
    });
    console.log(a);//true

    5.filter

    这个函数是一个过滤器,会将所有满足条件的函数返回到一个新的数组中,原数组不变,新数组中其实是返回了原数组中满足条件的元素

    var array = [1,2,3,4,5];
    
    array = array.filter(function(index) {//返回一个新数组,数组内的元素是满足函数得到的元素
        if(index>=4){
            return index;
        }
    });
    console.log(array);//4,5

    6.find

    返回第一个满足条件的元素

    var array = [1,2,3,4,5];
    var a=array.find(function(currentValue){//返回第一个满足条件的元素
        if(currentValue<3){
            return currentValue;
        };
    });
    console.log(a);//1

    7.findIndex

    这个方法和find方法差不多,只是findIndex方法返回的是第一个满足元素的下标

    var array = [1,2,3,4,5];
    var a=array.findIndex(function(currentValue){//返回第一个满足条件的元素的索引
        if(currentValue<3){
            return currentValue;
        };
    });
    console.log(a);//0

    8.reduce

    这个函数实现了对数组遍历和累加,累乘的功能

    var array = [1,2,3,4];
    var a = array.reduce(function(accumulator,currentValue){//从左至右遍历数组,第一个参数是在第一次传参时是数组的第一个值,之后为上一次回调函数返回的值,第二参数为当前值,从2个位置开始。
        return accumulator*currentValue;//将数组累乘;
    });

    上面的代码实现了

    var array = [1,2,3,4];
    
    function reduce(){
        for(var i=0,result=1;i<array.length;i++){
            result*=array[i];
        }
        return result;
    }

    但是用reduce没有了循环。

    9.reduceRight

    这个函数实现的功能和reduce没什么区别,只是reduce从左往右,而reduceRight从右往左

    最后说一下,其实以上方法是可以让字符串通过call方法来调用的,功能也是一样的

    var str = "Hello World!";
    
    var a = Array.prototype.reduceRight.call(str,function(accumulator,currentValue){//从左至右遍历数组
        return accumulator+currentValue;
    });
    console.log(a);

    输出就是什么呢?

    没错,就是!dlroW olleH

    其他的方法也可以通过call的方式来使用在字符串上

  • 相关阅读:
    shell脚本使用记录一:操作文件
    用IDEA在Tomcat上部署项目
    通过反射获取属性名和属性类型
    IDEA设置生成类基本注释信息
    有序的Map集合--LinkedHashMap
    书面格式注意的问题
    悲观锁和乐观锁的区别
    解析xml文件的四种方式
    jsp的四种范围
    jsp的两种跳转方式和区别
  • 原文地址:https://www.cnblogs.com/178-533/p/7608336.html
Copyright © 2011-2022 走看看