• JS-11 (数组函数)


    (1)判断:

    ①判断数组中是否所有元素都符合要求

    var bool=arr.every(
        function(elem,i,arr){
            return 判断条件
        }
    )

    返回值为true或false

    原理:

    1). every内部自带for循环遍历数组中每个元素

    2). 每遍历一个元素就自动调用一次回调函数

    3). 每次调用回调函数时:

      i. 形参elem会自动获得当前正在遍历的元素值

      ii. 形参i, 会自动获得当前正在遍历到的下标位置

      iii. 形参arr,会自动获得当前调用every().前的数组对象arr

      

    ②判断数组中是否包含符合要求的元素

    var bool=arr.some(function(elem,i,arr){
    	return 判断条件
    })
    

     每次循环调用一次回调函数,如果当前元素满足条件,则数组后续的元素不再遍历

    (2)遍历:

    ① forEach

    arr.forEach(//自带了for循环,遍历数组中每个元素
      function(elem,i,arr){ //每遍历一个元素就自动调用一次回调函数
        //elem收到当前正在遍历的元素值
        //i收到当前正在遍历到的下标位置
        //arr收到调用forEach()的.前的数组
        //对当前数组中正在遍历的当前元素执行任何操作!
      }
    )
    var arr=[1,2,3];
    arr.forEach(function(elem,i,arr1){
      arr1[i]+=1;
    });
    console.log(arr); //[2,3,4]

    ②map:遍历出原数组中每个元素值,修改后,放入新数组中返回

    var arr=[1,2,3]
    console.log(arr); var newArr=arr.map((elem,i,arr)=>{ return elem*elem; }); console.log(newArr); //arr[1,4,9]

     ③for of

    for(var 变量 of 数组/类数组对象/字符串){
    	of会依次取出数组中每个元素的值,保存到of前的变量中
    }
    

     for of 不能获取位置,不能倒序遍历

    *for of | for in | forEach

      1) 所有数字下标的索引数组、类数组对象、字符串都能用for of 遍历;只有索引数组才能用forEach;

      2) 所有自定义下标名称的关联数组、对象、都用for in 遍历,for in获取的不是元素值,而仅仅是下标名称

    (3)过滤 filter

    复制出数组中符合条件的元素放入一个新数组返回原数组保持不变

    var arr=[1,2,3,4,5,6];
    var odd=arr.filter((elem,i,arr)=>{
        return elem%2!==0;
    });
    console.log(odd);  //[1,3,5]
    

     (4)汇总reduce

    对数组中的元素进行统计最终得出一个结果

    var sum=arr.reduce(
    	//1. Reduce先定义变量保存起始值
    	//2. Reduce自带for循环,遍历数组中每个元素
    	//3. 每遍历一个元素,也自动调用一次回调函数
    	function(prev, elem, i, arr){
    		//prev是previous的缩写,表示当前元素之前的临时汇总值
    		return prev+elem;
    	},
    	起始值
    )
    
  • 相关阅读:
    人物-IT-张志东:张志东
    人物-IT-任正非:任正非
    人物-IT-张朝阳:张朝阳
    院校-清华大学:清华大学
    人物-丁磊:丁磊
    人物-李彦宏:李彦宏
    人物-IT-马云:马云
    inittab
    initlocation
    initdb
  • 原文地址:https://www.cnblogs.com/codexlx/p/12485941.html
Copyright © 2020-2023  润新知