zoukankan      html  css  js  c++  java
  • 4、map,forEach,every,some,filter的区别

    1.map

    let arr = [1,2,3,4,5]
       let newarr =arr.map(item=>{
          arr.push(10)
          return item*2
    })
    console.log(arr) //[1, 2, 3, 4, 5,10,10,10,10,10]
    console.log(newarr) //[2, 4, 6, 8, 10]
    map不改变原数组,他可以返回一个新的数组,当遍历数组时,内部改变原数组的时候,不会改变新的数组,就是说新添加的元素不会进入循环里面。

    2.forEach

    let arr = [1,2,3,4,5]
    let newarr =arr.forEach(item=>{
         arr.push(10)
         return item*2
    })
    console.log(arr) //[1, 2, 3, 4, 5,10,10,10,10,10]
    console.log(newarr) //undefined
    let arr = [1,2,3,4,5]
    let newarr =arr.forEach(item=>{
       if(item == 2){
           return
       }
    })
    forEach没有生成一个新的数组,而且无法通过return或break这样的语句跳出本次循环,上次的代码,可以断点运行下,即使等于2的时候,return掉了,但是3,4,5还是会继续进入循环

    3.every

    let arr = [1,2,3,4,5]
    let newArr=arr.every(item=>{
        return item>1
    })
    console.log(arr) //[1, 2, 3, 4, 5]
    console.log(newArr) //false
    every不会改变原数组,遍历数组的每一项,如果每一项都满足条件,则会返回true

    4.some

    let arr = [1,2,3,4,5]
    let newArr=arr.some(item=>{
        return item>1
    })
    console.log(arr) //[1, 2, 3, 4, 5]
    console.log(newArr) //true
    some不会改变原数组,遍历数组的每一项,如果任何一项满足条件,则会返回true

    5.filter

    let arr = [1,2,3,4,5]
    let newArr=arr.filter(item=>{
        return item>1
    })
    console.log(arr) //[1, 2, 3, 4, 5]
    console.log(newArr) //[2, 3, 4, 5]
    不会改变原数组,返回符合条件的数组,这个在实际开发中,我用的是比较多的

    不存在一劳永逸的技术,唯有坚持不懈的努力.
  • 相关阅读:
    实变函数资料目录
    高等代数资料目录
    数学分析资料目录
    各大高校数学分析高等代数考研试题参考解答
    高等代数习题集/资料/答案/视频讲解等目录
    数学分析习题集/资料/答案/视频讲解等目录
    数学分析习题集/资料/答案/视频讲解等目录
    Evans 偏微分方程目录
    Berkeley 常微分方程问题集目录
    245道2020年数学分析/91道2020年高等代数考研试题题目分类目录
  • 原文地址:https://www.cnblogs.com/xlfdqf/p/11082071.html
Copyright © 2011-2022 走看看