主题列表:juejin, github, smartblue, cyanosis, channing-cyan, fancy, hydrogen, condensed-night-purple, greenwillow, v-green, vue-pro, healer-readable, mk-cute, jzman, geek-black, awesome-green, qklhk-chocolate
贡献主题:https://github.com/xitu/juejin-markdown-themes
theme: juejin highlight:
前言
  在学习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()
返回 索引/值 对的迭代器
- 复制和填充方法
copyWithin()
批量复制方法fill()
填充数组方法
- 转换方法
toLocaleString()
toString()
返回由数组中每个值的等效字符串拼接而成的一个逗号分隔的字符串。valueOf()
返回数组本身
- 栈方法
数组对象可以像栈一样,也就是一种限制插入和删除项的数据结构。栈是一种先入后出的结构,也就是最近添加的项先被删除。数组提供了类似栈的数据项的插入(称为推入, push )和删除 (称为弹出,pop)方法的行为
push()
pop()
- 列队方法
队列以先进先出(FIFO,First-In-First-Out)形式 限制访问;
shift()
unshift()
总结| ---|---   通过栈方法:push()
和 列队方法: shift()
可以把数组当成队列来使用;
  使用栈方法:pop()
和队列方法:unshift()
可以在相反方向上模拟队列 | row 1 col 2
- 排序方法
sort()
reverse()
反向排序
小结 | ---|--- 如果只是想反转数组的顺序,reverse()
更简单快捷 |
- 操作方法
concat()
slice()
获取数组中的一部分元素splice()
删除/插入/替换 任意位置的多个元素
- 搜索和位置方法
- 按严格相等搜索(全等 === )
indexOf()
从数组前头(第一项)开始搜索lastIndexOf()
从数组末尾(最后一项)开始搜索includes()
从数组前头(第一项)开始搜索
- 按断言函数搜索   
find()
findIndex()
都是断言函数搜索方法,都接收两个参数,一个必填参数:断言函数和一个选填参数:用于指定断言函数内部 this 的值。   断言函数接收 3 个参数:元素、索引和数组本身。其中元素是数组中当前搜索的元素,索引是当前 元素的索引,而数组就是正在搜索的数组。断言函数返回真值,表示是否匹配。find()
返回第一个匹配的元素findIndex()
返回第一个匹配元素的索引
- 按严格相等搜索(全等 === )
- 迭代方法
some()
:对数组每一项都运行传入的函数,如果有一项函数返回 true ,则这个方法返回 true 。every()
:对数组每一项都运行传入的函数,如果对每一项函数都返回 true ,则这个方法返回 true 。filter()
:对数组每一项都运行传入的函数,函数返回 true 的项会组成数组之后返回。map()
:对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组。
这些方法都不改变调用它们的数组。
forEach()
:对每一项运行传入的函数,没有返回值。本质 上,forEach()
方法相当于使用 for 循环遍历数组。
- 归并方法
reduce()
从数组第一项开始遍历到最后一项,并在此基础上构建一个最终返回值reduceRight()
从最后一项开始遍历至第一项,并在此基础上构建一个最终返回值 ========================手动分割线===========================
让灵魂控制自己的皮囊吧。从而更加自由!!!——.——