美文网首页
ES5新增数组方法

ES5新增数组方法

作者: Coding破耳 | 来源:发表于2018-04-03 00:27 被阅读0次

    分别举例说明ES5数组方法 indexOf、forEach、map、every、some、filter、reduce的用法

    1. indexOf 和 lastIndexOf

    indexOf函数从前到后查找元素出现的第一个位置;lastIndexOf函数从后前查找元素出现的第一个位置

    var a = [1,2,3,3,2,1]
    console.log(a.indexOf(2)) //1
    console.log(a.lastIndexOf(2)) //4
    

    2. forEach遍历数组

    var a = new Array(1,2,3,4,5,6);
    
    a.forEach(function(e,i,array){
        array[i]= e + 1;
    });
    
    console.log(a); //[2, 3, 4, 5, 6, 7]
    

    3. map

    与forEach类似,遍历数组,返回值组成一个新数组返回,新数组索引结构和原数组一致,原数组不变

    var a = [1, 2, 3, 4, 5, 6]
    console.log(a.map(function(e){
      return e * e
    }))  // [1, 4, 9, 16, 25, 36]
    console.log(a) //[1, 2, 3, 4, 5, 6]
    

    4. every

    是所有函数的每个回调函数都返回true的时候才会返回true,当遇到false的时候终止执行,返回false

    var a = [1, 2, 3, 4, 5, 6];
    console.log(a.every(function(e, i, arr){
    return e < 5
    }))
    

    执行到元素5时就返回false,不再比较元素6

    5. some

    是“存在”有一个回调函数返回true的时候终止执行并返回true,否则返回false

    var a = [1, 2, 3, 4, 5, 6]
    console.log(a.some(function(e,i,arr){
      return e > 2
    }))
    

    执行到元素3时就返回true,后续不再执行

    6. filter

    返回数组的一个子集,是一个新的数组,回调函数用于逻辑判断是否返回,返回true则把当前元素加入到返回数组中,false则不加;新数组只包含返回true的值,索引缺失的不包括,原数组保持不变

    var a = [1, 2, 3, 4, 5, 6]
    var x = a.filter(function(e){
      return e % 2 == 0;
    });
    console.log(x) // [2, 4, 6]
    console.log(a) //[1, 2, 3, 4, 5, 6]
    

    7. reduce

    .reduce(function(v1, v2), value) / .reduceRight(function(v1, v2), value)
    遍历数组,调用回调函数,将数组元素组合成一个值,reduce从索引最小值开始,reduceRight反向;
    方法有两个参数:1.回调函数:把两个值合为一个,返回结果; 2.value,一个初始值,可填可不填

    var a = [1, 2, 3, 4, 5, 6]
    var b = a.reduce(function(v1, v2){ return v1 + v2 }) 
    console.log(a) // 21
    
    var a1 = [1,2,3]
    var b = a1.reduceRight(function(v1, v2){ return v1 - v2 }, 100)
    console.log(b) // 94
    

    相关文章

      网友评论

          本文标题:ES5新增数组方法

          本文链接:https://www.haomeiwen.com/subject/ccmfhftx.html