zoukankan      html  css  js  c++  java
  • 【js重学系列】数组高阶函数

    数组高阶函数

    https://www.runoob.com/jsref/jsref-obj-array.html

    共同特点

    不会改变原数组

    若需改变原数组,可以用arr[index]=?改变

    不可使用return break中断

    forEach

    forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。(没有返回值,将数组遍历)

    注意: forEach() 对于空数组是不会执行回调函数的。

    回调函数参数:currentValue  必需。当前元素; index  可选。当前元素的索引值; arr  可选。当前元素所属的数组对象。

    适用场景:普通数组的遍历

    map

    map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

    map() 方法按照原始数组元素顺序依次处理元素。

    map() 不会对空数组进行检测。
    回调函数参数:currentValue 必需。当前元素; index 可选。当前元素的索引值; arr 可选。当前元素所属的数组对象。

    适用场景:数组映射关系,返回新数组

    filter

    filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

    filter() 不会对空数组进行检测。

    回调函数参数:currentValue 必需。当前元素; index 可选。当前元素的索引值; arr 可选。当前元素所属的数组对象。

    适用场景:用于把Array的某些元素过滤掉,然后返回剩下的元素。

    sort

    sort() 方法用于对数组的元素进行排序。

    排序顺序可以是字母或数字,并按升序或降序。

    默认排序顺序为按字母升序。

    注意:当数字是按字母顺序排列时"40"将排在"5"前面。

    使用数字排序,你必须通过一个函数作为参数来调用。

    函数指定数字是按照升序还是降序排列。

    这些说起来可能很难理解,你可以通过本页底部实例进一步了解它。

    注意: 这种方法会改变原始数组!。

    some

    some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。

    some() 方法会依次执行数组的每个元素:

    如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。

    如果没有满足条件的元素,则返回false。

    注意: some() 不会对空数组进行检测。

    注意: some() 不会改变原始数组。

    every

    every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。

    every() 方法使用指定函数检测数组中的所有元素:

    如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。

    如果所有元素都满足条件,则返回 true。

    注意: every() 不会对空数组进行检测。

    注意: every() 不会改变原始数组。

    find

    find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。

    find() 方法为数组中的每个元素都调用一次函数执行:

    当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。

    如果没有符合条件的元素返回 undefined

    注意: find() 对于空数组,函数是不会执行的。

    注意: find() 并没有改变数组的原始值。

    findIndex

    findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

    findIndex() 方法为数组中的每个元素都调用一次函数执行:

    当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。

    如果没有符合条件的元素返回 -1

    注意: findIndex() 对于空数组,函数是不会执行的。

    注意: findIndex() 并没有改变数组的原始值。

    reduce

    reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

    reduce() 可以作为一个高阶函数,用于函数的 compose。

    注意: reduce() 对于空数组是不会执行回调函数的。

    array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

  • 相关阅读:
    C语言I博客作业05 sun
    C语言I博客作业08 sun
    C语言I博客作业02 sun
    C语言I博客作业04 sun
    elastix的web端口修改
    mysql.proc错误解决
    Client.Error.MessageSend 错误解决方案
    让secureCRT正确显示中文
    elastix的多个inbound route的设置
    PHP5.1时间相差8小时问题解决。
  • 原文地址:https://www.cnblogs.com/ycyc123/p/14823831.html
Copyright © 2011-2022 走看看