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

    不存在一劳永逸的技术,唯有坚持不懈的努力.
  • 相关阅读:
    Mybatis完成CRUD(四)
    Log4j日志配置
    Mybatis学习笔记(二)配置文件
    Mybatis学习笔记(一)入门例子
    jquery自动将form表单封装成json
    SpringMVC学习笔记(六)
    springMVC学习笔记(五)
    Oracle 数据库语句大全
    J a v a 的“多重继承”
    接口--interface
  • 原文地址:https://www.cnblogs.com/xlfdqf/p/11082071.html
Copyright © 2011-2022 走看看