• js数组其他的方法


    目录

    1、map()

    2、find() 

     3、findIndex()

    4、 some()

    5、every()

    6、reverse()

    7、reduce()

    8、 forEach() 

    9、filter( ) 

    10、reduceRight()


    1、map()

    map() 方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。

    高阶函数----函数的参数接受一个函数或返回值是函数的函数

    1. arr.map(function( item,index, arr) {
    2. // item -数组每一个元素
    3. //index -数组元素的索引
    4. // arr-----原数组
    5. })

    item -数组每一个元素
    index -数组元素的索引
     arr-----原数组


        变异方法
                  map对原数组循环,每次函数返回值会放入新数组中
                  map不影响原数组

    map 也称为映射。映射是个术语,指两个元素的集之间元素相互“对应”的关系。

    map重点在于有返回值,forEach没有返回值(undefined)

    1. const arr=[10,20,30,40]
    2. const newArray=arr.map(function(item,index,arr){
    3. return item*2
    4. })
    5. console.log(newArray)//[20, 40, 60, 80]

    2、find() 

    find( ) 查找满足条件的第一个元素,  找到就返回该元素,找不到是undefined
     

     语法:

    1. arr.find ( function ( item, index , arr) {
    2. })

     

    1. const arr=[1,3,7,8,4,2,9,3,6,8]
    2. const ele=arr.find(function(item,index,arr){
    3. return item===3
    4. })
    5. console.log(ele)//3

     3、findIndex()

    findIndex( )   查找满足条件的第一个元素的索引,找到就返回该元素的索引,找不到是-1
    indexOf( ) 只能找具体的值

    1. arr.findIndex ( function ( item, index , arr) {
    2. })

     

    1. const arr=[22,34,66,22,6,7,9,0,6]
    2. const index=arr.findIndex(function(item,index,arr){
    3. return item===6
    4. })
    5. console.log(index)//4

    4、 some()

    some对数组进行循环,发现满足条件的第一个元素则循环结束返回true,  假如所有元素不满足返回false

     

    1. //查看数组中是否含有偶数
    2. const arr=[2,3,5,7,8,4,99]
    3. const flag=arr.some(function(item,index,arr){
    4. return item%2===0
    5. })
    6. console.log(flag)//true

    5、every()

    every对数组进行循环,所有元素都满足返回true,假如遇到第一个不满足的元素结束,返回false

    1. const arr=[3,6,8,9,-3,-6,9]
    2. const flag = arr.every(function (item) {
    3. console.log(item)
    4. return item > -9
    5. })
    6. console.log(flag)//true

    6、reverse()

     reverse()   对原数组进行翻转

    1. const arr=[1,2,3,4,5,6]
    2. console.log(arr.reverse())//[6, 5, 4, 3, 2, 1]

    7、reduce()

    arr.reduce(function(prev , current) { },初始值)


    记忆:指定初始值,prev第一次就指向该初始值,以后的prev是上一次函数返回值, current指            向第一个元素
              没有指定初始值,prev第一次就指向数组第一个元素,current指向第二个元素,以后的              prev是上一次函数返回值
     

    1. // const arr = [1, 2, 3, 4]
    2. // const r = arr.reduce(function (prev, current, index, arr) {
    3. // console.log(prev, current, index)
    4. // return prev + current
    5. // })
    6. // console.log(r)
    7. /*
    8. 第一次 prev指向第一个元素 current 指向第二个 元素 index是current指向的元素的下标
    9. 第二次 prev代表上一次函数返回值 current继续指向下一个元素
    10. ....
    11. 最后一次函数的返回值作为reduce最终的结果
    12. 1 2 1
    13. undefined 3 2
    14. undefined 4 3
    15. */
    16. /*
    17. prev->1 current->2 return 3
    18. prev->3 current->3 return 6
    19. prev->6 current->4 return 10
    20. */
    21. /*
    22. arr.reduce(function(prev,current) {},初始值)
    23. 记忆: 指定初始值,prev第一次就指向该初始值,以后的prev是上一次函数返回值,current指向第一个元素
    24. 没有指定初始值,prev第一次就指向数组第一个元素,current指向第二个元素,以后的prev是上一次函数返回值
    25. */
    26. const arr = [1, 2, 3, 4]
    27. const r = arr.reduce(function (prev, current, index, arr) {
    28. console.log(prev, current, index)
    29. return prev + current
    30. }, 0)
    31. console.log(r)
    32. /*
    33. prev->0 current->1 retrurn 1
    34. prev->1 current->2 retrurn 3
    35. preve->3 current->3 retrurn 6
    36. preve->6 current->4 return 10
    37. */
    38. arr.reduceRight(function (prev, current) {
    39. console.log(prev, current)
    40. return prev + current
    41. })

     

    8、 forEach() 

        forEach代替for循环

    1.     arr.forEach(function (item,index, arr) {
    2.     console.log(item)
    3.     })


    forEach没有返回值   影响原数组

    1. const arr=[2,4,6,8,9,44,22]
    2. let sum=0
    3. arr.forEach(function(item){
    4. sum+=item
    5. })
    6. console.log(sum)//95

    9、filter( ) 

    filter( ) 过滤  把符合条件的元素组成一个新数组

    1. const arr=[3,44,7,8,79,0,34,55,8,0]
    2. const newArr=arr.filter(function(item){
    3. return item>10
    4. })
    5. console.log(newArr)//[44, 79, 34, 55]

    10、reduceRight()

    reduceRight() 方法对累加器(accumulator)和数组的每个值(按从右到左的顺序)应用一个函数,并使其成为单个值。

    1. const arr=[1,2,3,4,5,6]
    2. const sum=arr.reduce(function(prev,current){
    3. return prev+current
    4. })
    5. console.log(sum)//21

  • 相关阅读:
    【Matplotlib绘制图像大全】(二十六):Matplotlib读取本地图像
    深入探索时间复杂度:解锁算法性能的关键
    在c++中cout相比于printf更加方便!!!数据类型:实型、字符型、转义字符、字符串型、布尔数据类型、数据的输入。
    【c++提高1】单调队列
    关于#网络#的问题:采用CRC方法进行校验,求数据冗余码FCS(相关搜索:计算机网络)
    用python的zerorpc写一个生成雪花ID的rpc服务
    大二学生JavaScript实训大作业——动漫秦时明月7页 期末网页制作 HTML+CSS+JavaScript 网页设计实例 企业网站制作
    音频链接抓取技术在Lua中的实现
    YOLOV5学习笔记
    Largebin Attack原理详解
  • 原文地址:https://blog.csdn.net/m0_56713342/article/details/134507993