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]
    不会改变原数组,返回符合条件的数组,这个在实际开发中,我用的是比较多的

    不存在一劳永逸的技术,唯有坚持不懈的努力.
  • 相关阅读:
    SSR 第二篇,搭建Vue SSR程序
    SSR 第一篇,搭建简单的SSR程序
    数组的所有方法整理学习
    CustomEvent 使用
    VUE CSS module
    eslint Expected linebreaks to be 'LF' but found 'CRLF'
    利用Object.freeze() 提升性能
    vue 项目开启gzip 压缩和性能优化
    [转]Ext Grid控件的配置与方法
    ExtJS renderer(转)
  • 原文地址:https://www.cnblogs.com/xlfdqf/p/11082071.html
Copyright © 2011-2022 走看看