第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']

数组是一种特殊的对象类型。数组中也可以包含 对象 。

数组的 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() 在数组开头添加一个或多个元素,并返回数组的新长度

在本章中,我们将探讨以下主题: