【重点】快速记忆JavaScript的数组api

600 阅读4分钟

前言

  在学习JavaScript数组的时候经常感觉有些api很陌生,那有什么方法可以方便记忆这些api呢?记住所有api可能性不大,但通过对数组的api进行分类,记住这些分类总不难吧?然后要用到哪个api的时候就想想属于哪个分类,然后在那个分类的api里面找,应该就可以快速找到了。然后可以通过 MDN 网站来查找这些api的更加详细的用法和注意事项
  通过阅读 《红宝书》 发现红宝书已经对他进行了分类,本文就根据红宝书对这些方法进行了分类。


  • 创建数组

    • Array构造函数
    • 数组字面量
    • from() 、of()
  • 数组空位

    • const options = [,,,,,];

    注意:由于行为不一致和存在性能隐患,因此实践中要避免使用数组空位。如果确实需要 空位,则可以显式地用 undefined 值代替。

  • 数组索引

    数组最多可以包含 4 294 967 295 个元素

  • 检测数组

    • 在只有一个网页的情况下可以用 instanceof
    • 通常用 Array.isArray()
  • 迭代器方法

    • keys() 返回数组索引的迭代器
    • values() 返回数组元素的迭代器
    • entries() 返回 索引/值 对的迭代器
  • 复制和填充方法

  • 转换方法

  • 栈方法

    数组对象可以像栈一样,也就是一种限制插入和删除项的数据结构。栈是一种先入后出的结构,也就是最近添加的项先被删除。数组提供了类似栈的数据项的插入(称为推入, push )和删除 (称为弹出,pop)方法的行为

  • 列队方法

    队列以先进先出(FIFO,First-In-First-Out)形式 限制访问;

总结| ---|---   通过栈方法:push() 和 列队方法: shift() 可以把数组当成队列来使用;
  使用栈方法:pop() 和队列方法:unshift() 可以在相反方向上模拟队列 | row 1 col 2

小结 | ---|--- 如果只是想反转数组的顺序,reverse() 更简单快捷 |

  • 操作方法

  • 搜索和位置方法

    • 按严格相等搜索(全等 === )

      • indexOf() 从数组前头(第一项)开始搜索
      • lastIndexOf() 从数组末尾(最后一项)开始搜索
      • includes() 从数组前头(第一项)开始搜索
    • 按断言函数搜索

        find() findIndex() 都是断言函数搜索方法,都接收两个参数一个必填参数:断言函数一个选填参数:用于指定断言函数内部 this 的值。
        断言函数接收 3 个参数:元素、索引和数组本身。其中元素是数组中当前搜索的元素,索引是当前 元素的索引,而数组就是正在搜索的数组。断言函数返回真值,表示是否匹配。

      • find() 返回第一个匹配的元素
      • findIndex() 返回第一个匹配元素的索引
  • 迭代方法

    • some():对数组每一项都运行传入的函数,如果有一项函数返回 true ,则这个方法返回 true 。
    • every():对数组每一项都运行传入的函数,如果对每一项函数都返回 true ,则这个方法返回 true 。
    • filter():对数组每一项都运行传入的函数,函数返回 true 的项会组成数组之后返回。
    • map():对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组。
      这些方法都不改变调用它们的数组。
    • forEach():对每一项运行传入的函数,没有返回值。本质 上, forEach() 方法相当于使用 for 循环遍历数组。
  • 归并方法

    • reduce() 从数组第一项开始遍历到最后一项,并在此基础上构建一个最终返回值
    • reduceRight()从最后一项开始遍历至第一项,并在此基础上构建一个最终返回值 ========================手动分割线===========================

让灵魂控制自己的皮囊吧。从而更加自由!!!——.——