美文网首页
ES5中新增的数组api

ES5中新增的数组api

作者: 是努力的鸣谦啊 | 来源:发表于2018-12-04 21:33 被阅读0次

    本文都是相对简单的API调用。

    一、迭代方法

    API 参数 作用 返回值 备注
    forEach func(v,i,arr) 对数组中的每一项进行操作 没有返回值
    map func(v,i,arr) 对数组中的每一项进行操作,
    将结果组成新数组
    新数组
    filter func(v,i,arr) 筛选出符合条件的值,
    每个值只出现一次,
    将结果组成新数组
    新数组
    some func(v,i,arr) 判断是否有符合条件的值 true/false 一真即真
    every func(v,i,arr) 判断是否所有值都符合条件 true/false 一假即假

    示例代码:

    //首先创建一个不错的数组
    let arr = [2, 8, 4, 6, 9, 2, 7, 3, 1, 5, 1, 8]
    
    //  map  遍历
    
    let mapArr = arr.map((v, i, arr) => {
      return arr[i] = v * 2
    })
    console.log(mapArr) // map有返回值 [ 4, 16, 8, 12, 18, 4, 14, 6, 2, 10, 2, 16 ]
    
    //  some  判断有没有符合条件的值
    
    let someRes = arr.some((v, i, arr) => {
      return v > 5
    })
    console.log(someRes) //  true
    
    // every  判断是否所有值都符合条件
    
    let everyRes = arr.every((v, i, arr) => {
      return v > 5
    })
    console.log(everyRes) //  false
    
    // filter  数组筛选
    
    let arrFilter1 = arr.filter((v, i, arr) => {
      return v > 5;
    })
    console.log(arrFilter1) //  [ 16, 8, 12, 18, 14, 6, 10, 16 ]
    
    //  filter  数组去重(小技巧)
    
    let arrFilter2 = arr.filter((v, i, arr) => {
      return arr.indexOf(v) === i;
    })
    
    console.log(arrFilter2) //  [ 4, 16, 8, 12, 18, 14, 6, 2, 10 ]
    
    //  forEach  遍历数组
    
    let forEachArr = arr.forEach((v, i, arr) => {
      return arr[i] = v * 2;
    })
    
    
    console.log(forEachArr) //  forEach  没有返回值  undefined
    console.log(arr)        //  [ 8, 32, 16, 24, 36, 8, 28, 12, 4, 20, 4, 32 ]
    

    二、归并方法

    API 参数 作用 返回值 备注
    reduce func(prev,current,i,arr),num 链接数组 新数组
    reduceRight func(prev,current,i,arr),num 反着链接数组 新数组

    示例代码:

    // 首先创建一个比较规则的数组
    let arr = [1, 2, 3, 4, 5]
    
    let sum1 = arr.reduce((prev, current, i, arr) => {
      console.log(prev);  // 1 3 6 10   打印4次,因为当 i == 0 时,prev还没有存在
      return prev + current
    })
    
    console.log(sum1)  // 15
    
    
    let sum2 = arr.reduce((prev, current, i, arr) => {
      console.log(prev);  // 2 3 5 8 12  打印5次
      return prev + current
    },2)
    
    console.log(sum2)  // 17
    
    //如果传了第二个参数,则会将其当作 i == 0 时的prev
    

    三、索引方法

    API 参数 作用 返回值 备注
    indexOf() v,i 查找从第i项开始,第n个等于v的值 n 从0开始数
    如果没有返回-1
    lastIndexOf() v,i 同上,但从数组的最后往前查找 n 同上

    示例代码

    // 新建一个比较规则的数组
    let arr = [1, 2, 3, 4, 5]
    
    let sum1 = arr.reduce((prev, current, i, arr) => {
      console.log(prev);  // 1 3 6 10   打印4次
      return prev + current
    })
    
    console.log(sum1)  // 15
    
    
    let sum2 = arr.reduce((prev, current, i, arr) => {
      console.log(prev);  // 2 3 5 8 12  打印5次
      return prev + current
    },2)
    
    console.log(sum2)  // 17
    

    相关文章

      网友评论

          本文标题:ES5中新增的数组api

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