zoukankan      html  css  js  c++  java
  • 数组方法二

     filter:过滤,不操作原数组,返回过滤后的数组,返回true ,这一项就放到新数组

    一般用于删除

    let newAry=[3,5,2,8,9,4,0].filter(function (item){
    
       return item>2 && item<5
    
    })
    console.log(newAry);//[3、4]

    forEach :循环,没有 return 返回值

     let arr = [2,4,5,7,1];
    arr.forEach(function (item){//声明式,不关心如何实现
    
       console.log(itme);
    })
    for(let i=0; i<arr.length;i++){//编程式
    console.log(arr[i]);
    }

    for(let key in arr){//key会变成字符串类型

    }
    for(let val of arr){}//支持return,并且是值of数组,不能遍历对象
    面试题:forEach、for、for in,for of的区别
    for in 能打印数组的私有属性
    for of 支持return,不能遍历对象

    includes (ES6):查看数组是否包含,返回boolean类型

    let arrf = [2,5,7,9];
    arrf.includes(5);

    find(ES6):找到具体的那一项,不改变原数组,返回true 表示找到了,找到就结束循环,找不到返回undefined

    //需求:找到用户名
    let resule = arr3.find(function(itme,index){ return itme == 'xxx' })
    console.log(resule);//xxx

    keys:方法返回一个包含数组中每个索引键的Array Iterator对象。

    var array1 = ['a', 'b', 'c'];
    var iterator = array1.keys(); 
      
    for (let key of iterator) {
      console.log(key); // expected output: 0 1 2
    }

    map:映射 ,将原有的数组映射成一个新数组,不操作原数组,返回新数组,回调函数中返回什么这一项就是什么

    一般用于更新,修改

    //需求[1,2,3]变成 <li>1</li><li>2</li><li>3</li>
    let arr1 = [1,2,3].map(function (item){
    return `<li>${itme}<li>`//es6中的模板字符串,遇到变量使用${}取值
    })
    console.log(arr1.join(''));

    reduce :收敛,4个参数,返回叠加后的结果,原数组不变,回调函数返回

    let some=[1,3,4,5].reduce(function (prev,next,index,item){//第一项,第二项,索引,原数组
        console.log(prev,next);
        return prev+next
    })
    console.log(some);

    //计算多维数组

    let some2=[{pirce:30,count:2},{pirce:50,count:2},{pirce:40,count:2}];
    let some3=some2.reduce(function (prve,next){
        return prve+next.pirce*next.count;
    },0)//0是默认指定第一次的prve
    console.log(some3);//240

    //多维数组变成一维数组

    let some4 = [[1,2,3],[4,5,6],[7,8,9]];

    let some5 = some4.reduce(function (prve,next){

       return prve.concat(next);

    })

    console.log(some5);//[1,2,3,4,5,6,7,8,9]

    every()是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true。

    some()是对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true。

    var arr = [ 1, 2, 3, 4, 5, 6 ]; 
    
    console.log( arr.some( function( item, index, array ){  
        return item > 3;  
    })); 
    
    //找到有大于3的就返回 true
    
    console.log( arr.every( function( item, index, array ){ 
        return item > 3; 
    }));
    //每一项都大于3才能返回true,有一项不大于3的就返回false

    some一直在找符合条件的值,一旦找到,则不会继续迭代下去。
    every从迭代开始,一旦有一个不符合条件,则不会继续迭代下去。

  • 相关阅读:
    辅助工具链接
    参考资料链接
    oracle sql 查询前十条数据
    oracle sql 按照汉字规则排序
    oracle sql 修改timestamp数据
    eclipse闪退
    js 数组Array
    面试题:树的子结构
    面试题:二叉树中和为某一路径
    面试题:二叉搜索树的后序遍历
  • 原文地址:https://www.cnblogs.com/xinxinxiangrong7/p/11426580.html
Copyright © 2011-2022 走看看