• JavaScript数据结构【数组】


    一、JavaScript中数组一些方法

    方法

    描述

    push

    数组的末尾插入元素

    unshift

    数组的开头插入元素

    pop

    从数组的末尾删除元素

    shift

    数组的开头删除元素

    splice

    在数组的任意位置添加或删除元素

    concat

    连接两个或更多数组,并返回结果

    filter

    对数组中的每个元素给定函数,返回该函数会返回true的元素组成的数组

    forEach

    返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1

    lastIndexOf

    返回在数组中搜索到的与给定参数相等的元素的索引里最大的值

    map

    对数组中的每个元素运行给定函数,返回每次函数调用的结果组成的数组

    reserve

    颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在 的第一个

    slice

    传入索引值,将数组里对应索引范围内的元素作为新数组返回

    sort

    按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数

    toString

    将数组作为字符串返回

    valueOf

    和 toString 类似,将数组作为字符串返回

    every

    对数组中的每个元素运行丢给一个函数,如果该函数对每个元素都返回 true,则返回 true

    some

    对数组中的每个元素运行给定函数,如果任一元素返回 true,则返回 true

    用法及详细介绍

    二、迭代器函数

    迭代数组中的元素,最直接简单的方法就是使用循环语句来循环遍历,但JS却内置了很多数组的迭代方法,人家给都给了,为什么不用呢?

    既然是迭代总要来个迭代对象把,所以他来了

    来个数组

    let array = [1,2,3,4,5,6,7,8,9,10]

    直接遍历没意思,加点料:

    来个函数(如果元素偶数,函数返回true,否则返回false):

    const isEven = x => {
      console.log(x);	//方便直观的迭代过程
      return x % 2 === 0;
    }
    

    1、用every方法迭代

    行为: 方法会迭代数组中的每个元素,直到返回 false。

    console.log(array.every(isEven));

    可以看到:array的第一个元素是1(奇数),所以isEven函数会返回false,然后every执行结束。

    2、用 some 方法迭代

    行为:every的行为相反,迭代数组的每个元素,知道函数返回true

    console.log(array.some(isEven));

    可以看到:array的第一个偶数是2(即第二个元素),第一个被迭代的元素(1)的经过函数返回false,第二个迭代元素是2,函数返回true,迭代结束。

    3、用forEach方法迭代

    如果要迭代整个数组,可以用forEach方法,和for循环的结果相同。

    array.forEach(x => console.log(x % 2 === 0));

    4、使用 map 和 filter 方法

    共同点:一个会返回新数组的迭代方法

    区别

    先看map:

    const newArray = array.map(isEven);
    console.log(newArray.toString());

    再看filter:

    const newArray = array.filter(isEven);
    console.log(newArray.toString());

    可以看到,两者的区别很明显,前者(map)返回的数组里存放的是每个元素经过函数判断的返回值(boolean值),而后者(filter)返回的数据里存放的是经过函数判断为true的对应元素, 由函数返回 true 的元素组成。

    5、 使用 reduce 方法

    reduce 方法接收一个有如下四个参数的函数:previousValue、 currentValue、index 和 array。因为 index 和 array 是可选的参数,所以如果用不到它们 的话,可以不传。这个函数会返回一个将被叠加到累加器的值,reduce 方法停止执行后会返回 这个累加器

    示例:对一个数组中的所有元素求和

    console.log(array.reduce((previous, current) => previous + current));   //55

  • 相关阅读:
    (经典dp) hdu 递推求解专题练习
    设计模式:代理模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
    院内导航系统哪家口碑好?医疗院内导航地图公司排名
    Java环形链表实现约瑟夫环问题
    基于springboot的在线小说阅读平台设计与实现-计算机毕业设计源码+LW文档
    Spring—SSM整合框架
    LeetCode111 二叉树的最小深度
    SQL Server 2019安装错误0x80004005 服务没有及时响应启动或控制请求详细解决方法
    Helplook VS Document360:哪个更适合知识库管理?
    移动通信网络规划:抗衰落技术
  • 原文地址:https://blog.csdn.net/Flying____fish/article/details/128169648