• javaScript操作数组的常用方法


    map(映射), reduce(规约), forEach(遍历), filter(过滤),它们都是高阶函数,都是以传入不同的函数来以不同的方式操作数组元。ie都不支持

    判断是否为数组

    • Array.isArray(ele)
    Array.isArray({})
    //=>false
    Array.isArray('')
    //=> false
    Array.isArray([])
    //=>true
    

    查找数组内指定元素位置

    • indexOf(ele) / .lastIndexOf(ele)
    [1,2,3,4,2,3].indexOf(2)  //= > 1   从左到右返回第一个匹配的
    [1,2,3,4,2,3].lastIndexOf(2) //=>   4   从右到左第一个匹配元素的位置
    

    遍历数组

    • forEach 为每个元素执行对应的方法
      遍历数组,参数为一个回调函数,回调函数有三个参数:当前元素,元素索引,整个数组
    var a=new Array(1,2,3,4,5,6)
    a.forEach(function(val,i,array){  //
           a[i]=val+1;
    });
    
    • map 遍历数组 ,参数为一个回调函数,返回一个新数组
    var a=new Array(1,2,3,4,5,6)
    a.map((e,i)=>{
    	return e*e
    });
    //=>[1, 4, 9, 16, 25, 36]
    
    • .reduce(function(v1,v2),value) / .reduceRight(function(v1,v2),value)
      遍历数组,方法有两个参数
    1. 回调函数,把两个值合为一个,并返回结果
    2. value ,一个初始值,可选
    //不传initialValue值
    var arr = [1,2,3];
    arr.reduce(function(pre,cur,index,arr){return pre+cur});
    //结果 6
    //累加了两次
    
    // 传入initialValue 值
    
    var arr = [1,2,3]
    arr.reduce(function(pre,cur,index,arr){return pre+cur},10);
    //结果16
    //累加了3次,初始值为10
    
    //拼接所有的数组
    var flattened = [[0, 1], [2, 3], [4, 5]].reduce( ( acc, cur ) => acc.concat(cur));
    
    //输出[0, 1, 2, 3, 4, 5]
    
    • filter(function(ele))
      返回原数组的一个子集,回调函数逻辑判断为true则返回,为false和索引为空则不返回,原数组保持不变
    //排除掉小于10的值
    var isBigEnough=(element)=> {
      return element >= 10;
    }
    var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
    // filtered is [12, 130, 44]
    

    数组转字符串

    • join() 将数组里面的所有项拼接成一个字符串
    var a=[1,2,3,9,7]
    a.join(',')
    //=>"1,2,3,9,7"
    //注意原数组不会被改变
    

    数组去重

    • 用到Set对象和 Array.from()方法
    a=[1,2,3,4,3,3,3,2]
    var arr=new Set(a)
    Array.from(arr)
    //=>[1, 2, 3, 4]
    
    • filter 删除重复项
    arr.filter((item, pos) => arr.indexOf(item) === pos)
    
  • 相关阅读:
    MVC视图布局页常用代码
    常用meta标签及说明
    重新认识Android
    为什么V8引擎这么快?
    node.js入门及express.js框架
    红星美凯龙CEO车建新的圆融和霸气
    【一个王朝的背影】--余秋雨
    Android源代码结构分析
    Android文件系统的结构
    Mac OSX 平台安装 MongoDB
  • 原文地址:https://www.cnblogs.com/whkl-m/p/10697613.html
Copyright © 2020-2023  润新知