关于map some filter every 一些临时记忆

  • map():通过指定函数处理数组的每个元素,并返回处理后的数组。(不遍历空数组,不改变原数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了)
    •   
       let arr = [1,2,3,4,5]
          console.log(arr.map((item,index,array)=>item+1));结果为[2,3,4,5,6]

           map() 方法会将数组中元素依次传入方法中,并将方法的返回结果组成新数组返回。

  • filter:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素(跟map同理)
    •   
      let arr = [1,2,3,4,5]
          console.log(arr.filter((item,index,array)=>item>2));结果为[3,4,5]

      filter会根据函数中的筛选条件将返回的结果组成一个新的数组并返回

  • some():用于检测数组中的元素是否满足指定条件(函数提供)(不改变原数组,不遍历空数组)
    •   
      let arr = [1,2,3,4,5]
          console.log(arr.some((item,index,array)=>item>5));结果为false
          console.log(arr.some((item,index,array)=>item>4));结果为true

      some方法会依次遍历数组的每个元素;

        •  如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
        •  如果没有满足条件的元素,则返回false
  • every:用于检测数组所有元素是否都符合指定条件(通过函数提供)(不改变原数组,不遍历空数组,跟some对应)
    •   
      let arr = [2,3,4,5]
      console.log(arr.every((item,index,array)=>item>1));结果为true
      console.log(arr.every((item,index,array)=>item>2));结果为false

      every和some正好相反:

        •  如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
        •  如果所有元素都满足条件,则返回 true
  • foreach():遍历数组中的每一项(跟map同理,不支持IE,没有返回值
    • let arr = [1,2,3,4]
          console.log(arr.forEach((item,index,array)=>item));结果为undefined(没有返回值);
          arr.forEach((item,index,array)=>console.log(item));结果为1,2,3,4
    • 不常用 因为不兼容 也无返回值 跟for of循环 for循环 for  in 类似
    • 遍历的方法还有很多 如:
          • reduce((previousValue, currentValue, index, array)=>previousValue+currentValue)累加
          • reduceRight((previousValue, currentValue, index, array)=>previousValue+currentValue) 累加,跟reduce一样,不同的是reduceRight是从尾开始遍历 
          • find() 
          • findIndex() 
          • keys() 
          • values() 
          • entries()

猜你喜欢

转载自www.cnblogs.com/gitwusong/p/12195714.html
今日推荐