章节：6
页码：47
描述：数组是数据的列表，是编程中的基础部分。我们可以在数组中存储多种类型的数据。

第6章
数组（Arrays）

数组是编程中的基础部分。数组是一种数据列表。我们可以在一个变量中存储大量数据，这使我们的代码更易读、更易理解，也更方便对相关数据进行操作。

数组中的数据称为 元素。

下面是一个简单的数组示例：

// 1, 1, 2, 3, 5 和 8 是数组中的元素
let numbers = [1, 1, 2, 3, 5, 8];


数组可以使用数组字面量或 new 关键字轻松创建：

const cars = ["Saab", "Volvo", "BMW"]; // 使用数组字面量
const cars = new Array("Saab", "Volvo", "BMW"); // 使用 new 关键字


可以通过索引访问数组的值。数组的第一个元素索引总是 0，因为数组索引从 0 开始。索引也可以用于修改数组元素：

const cars = ["Saab", "Volvo", "BMW"];
console.log(cars[0]); 
// 结果: Saab

cars[0] = "Opel"; // 修改数组的第一个元素
console.log(cars);
// 结果: ['Opel', 'Volvo', 'BMW']


{% hint style="working" %}
数组是一种特殊的对象类型。数组中也可以包含 对象
。
{% endhint %}

数组的 length 属性返回元素的数量。数组支持的方法如下表所示：

| 方法名称              | 描述                                                                             |
| ----------------- | ------------------------------------------------------------------------------ |
| `at()`            | 返回指定索引的元素或 `undefined`                                                         |
| `concat()`        | 返回两个或多个数组的组合                                                                   |
| `every()`         | 如果回调函数对数组中每个元素都返回 `true`，则返回 `true`                                            |
| `filter()`        | 返回一个新数组，包含回调函数返回 `true` 的元素                                                    |
| `find()`          | 返回第一个使回调函数返回 `true` 的元素                                                        |
| `findIndex()`     | 返回第一个使回调函数返回 `true` 的元素索引                                                      |
| `findLast()`      | 返回最后一个使回调函数返回 `true` 的元素                                                       |
| `findLastIndex()` | 返回最后一个使回调函数返回 `true` 的元素索引                                                     |
| `flat()`          | 返回一个新数组，将所有子数组元素递归展开到指定深度                                                      |
| `flatMap()`       | 先运行 `map()`，再运行深度为 1 的 `flat()`                                                |
| `forEach()`       | 对数组中的每个元素执行回调函数，返回 `undefined`                                                 |
| `indexOf()`       | 返回搜索元素第一次出现的索引                                                                 |
| `join()`          | 将数组中的所有元素连接成一个字符串                                                              |
| `lastIndexOf()`   | 返回搜索元素最后一次出现的索引                                                                |
| `map()`           | 执行回调函数后返回一个新数组                                                                 |
| `pop()`           | 删除数组的最后一个元素并返回该元素                                                              |
| `push()`          | 在数组末尾添加一个或多个元素，并返回数组的新长度                                                       |
| `reduce()`        | 使用 `callback(accumulator, currentValue, currentIndex, array)` 对数组进行归约操作，返回最终结果 |
| `reduceRight()`   | 与 `reduce()` 类似，但从数组末尾开始                                                       |
| `reverse()`       | 原地翻转数组元素，并返回数组的引用                                                              |
| `shift()`         | 删除数组的第一个元素并返回该元素                                                               |
| `slice()`         | 提取数组的一部分并返回新数组                                                                 |
| `some()`          | 如果回调函数对数组中至少一个元素返回 `true`，则返回 `true`                                           |
| `sort()`          | 原地对数组元素进行排序，并返回数组的引用                                                           |
| `splice()`        | 从数组中删除元素（可选择性替换），并返回删除的元素                                                      |
| `unshift()`       | 在数组开头添加一个或多个元素，并返回数组的新长度                                                       |
