• forEach、map、filter、some、every、find之间的区别


    前言:

    从一开始学了javascript中的for循环遍历方法,到后来了解到forEach、vue中的v-for、map等方法,经常会搞不清楚其中的区别,今天就来粗略的解释一下,

    for循环我就不说了,想必大家也常用到。

    forEach:

    语法:

    array.forEach(callback(currentValue, index, array){

        //do something
    }) 

    callback: 为数组中每个元素执行的函数,该函数接收三个参数,

    参数一:当前数组中元素;参数二:索引; 参数三:当前数组。

    map:

    语法:

    var new_array = arr.map(callback[, thisArg]) 

    forEach和map循环的区别:forEach没有返回值,即使你给出return也不管用,map会返回一个新数组给你,原数组不会发生改变。

    filter:从字面上看就是过滤筛选的意思

    语法:

    var ages = [32, 33, 16, 40];

    function checkAdult(age) {
        return age >= 18;
    }

    返回一个新的对象数组,不会将原有的数组进行改变。

    some:用于检测数组中的元素是否满足条件

    注意:some不会对空数组进行检测,不会改变原始数组。

    语法:

    var ages = [3, 10, 18, 20];

    function checkAdult(age) {
        return age >= 18;
    }

    返回的是true或false。

    every:用于检测数组中的所有元素是否符合指定条件,

    注意:如果数组中有一个元素没有符合条件,则整个表达式返回的都是false,所有元素满足时才返回true,不会对空数组进行检测,不会改变原始数组。

    语法:

    var ages = [32, 33, 16, 40];

    function checkAdult(age) {
        return age >= 18;
    }

    返回的是true或false

    find:返回通过测试(函数内判断)的数组的第一个元素的值,为数组中的每个元素都调用一次函数执行。

    注意:

    • 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
    • 如果没有符合条件的元素返回 undefined
    •  find() 对于空数组,函数是不会执行的。

    •  find() 并没有改变数组的原始值。
    语法:

    var ages = [3, 10, 18, 20];

    function checkAdult(age) {

      return age >= 18;

    }

    findsome很类似,都是寻找符合条件的,有一个就可以 不过some进去搜罗了一圈回来如果有符合条件的就返回true,而find是将符合条件的那条数据返回出来(返回第一个符合条件的对象)。

  • 相关阅读:
    js 判断表单是否为空和是否是有效数字
    jsp获取url路径的方法
    Table 'jiang.hibernate_sequence' doesn't exist
    Struts 2中的constant详解【转载】
    禁用ubuntu启用虚拟内存swap
    1
    Struts+Spring+Hibernate整合入门详解
    Posting JSON to Spring MVC Controller
    JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
    利用MAVEN打包时,如何包含更多的资源文件
  • 原文地址:https://www.cnblogs.com/0314dxj/p/11057743.html
Copyright © 2020-2023  润新知