JavaScript 数组

数组是一个对象,可以一次存储多个值。

const age = [17, 18, 15, 19, 14];

在上面的例子中,我们创建了一个数组来记录五个学生的年龄。

Array of Five Elements
五个元素的数组

为什么要使用数组?

数组允许我们将相关数据组织起来,将它们分组到一个变量中。

假设你想存储一个水果列表。仅使用变量,这个过程可能看起来像这样

let fruit1 = "Apple";
let fruit2 = "Banana";
let fruit3 = "Orange";

这里,我们只列出了一些水果。但是如果我们想存储 100 种水果呢?

在这种情况下,最简单的解决方案是将它们存储在数组中。

let fruits = ["Apple", "Banana", "Orange", ...];

一个数组可以在一个变量中存储许多值,通过引用相应的索引号可以轻松访问它们。


创建数组

我们可以通过将元素放在数组字面量 [] 中,并用逗号分隔来创建数组。例如,

const numbers = [10, 30, 40, 60, 80];

这里,

  • numbers - 数组的名称。
  • [10, 30, 40, 60, 80] - 数组的元素。
JavaScript 数组示例

这里有几个 JavaScript 数组的例子

// empty array
const emptyArray = [];

// array of strings
const dailyActivities = ["eat", "work", "sleep"];

// array with mixed data types
const mixedArray = ["work", 1, true];

注意: 与许多其他编程语言不同,JavaScript 允许我们创建包含混合数据类型的数组。


访问数组元素

数组的每个元素都与一个数字相关联,称为索引,它指定了它在数组中的位置。

考虑以下数组

let numbers = [10, 30, 40, 60, 80];

这里是每个元素的索引

Index of Array Elements
数组元素的索引

我们可以使用数组索引来访问数组的元素。

代码 描述
numbers[0] 访问第一个元素 10
numbers[1] 访问第二个元素 30
numbers[2] 访问第三个元素 40
numbers[3] 访问第四个元素 60
numbers[4] 访问第五个元素 80

让我们看一个例子。

let numbers = [10, 30, 40, 60, 80]

// access first element console.log(numbers[0]); // 10 // access third element console.log(numbers[2]); // 40

请记住: 数组索引始终从 0 开始,而不是 1


向数组添加元素

我们可以使用内置方法,如 push()unshift(),向数组添加元素。

1. 使用 push() 方法

push() 方法在数组的末尾添加一个元素。

let dailyActivities = ["eat", "sleep"];

// add an element at the end dailyActivities.push("exercise");
console.log(dailyActivities); // Output: [ 'eat', 'sleep', 'exercise' ]

2. 使用 unshift() 方法

unshift() 方法在数组的开头添加一个元素。

let dailyActivities = ["eat", "sleep"];

// add an element at the beginning dailyActivities.unshift("work");
console.log(dailyActivities); // Output: [ 'work', 'eat', 'sleep' ]

要了解更多,请访问 Array push()Array unshift()


更改数组的元素

我们可以通过访问索引值来添加或更改元素。例如,

let dailyActivities = [ "eat", "work", "sleep"];

// change the second element // use array index 1 dailyActivities[1] = "exercise";
console.log(dailyActivities); // Output: [ 'eat', 'exercise', 'sleep' ]

在这里,我们将索引 1(第二个元素)处的数组元素从 work 更改为 exercise


从数组中删除元素

我们可以使用 splice() 方法从数组的任何指定索引处删除一个元素。

let numbers = [1, 2, 3, 4, 5];

// remove one element // starting from index 2 numbers.splice(2, 1);
console.log(numbers); // Output: [ 1, 2, 4, 5 ]

在此示例中,我们使用 splice() 方法删除了索引 2(第三个元素)处的元素。

请注意以下代码

numbers.splice(2, 1);

这里,(2, 1) 表示 splice() 方法从索引 2 开始删除一个元素。

注意: 假设您要删除第二个、第三个和第四个元素。您可以使用以下代码执行此操作

numbers.splice(1, 3);

要了解更多,请访问 JavaScript Array splice()


数组方法

JavaScript 具有各种数组方法来执行有用的操作。JavaScript 中一些常用的数组方法是

方法 描述
concat() 连接两个或多个数组并返回结果。
toString() 将数组转换为由(逗号分隔的)数组值组成的字符串。
indexOf() 搜索数组中的元素并返回其位置(索引)。
find() 返回通过给定测试的数组元素的第一个值。
findIndex() 返回通过给定测试的数组元素的第一个索引。
forEach() 为每个元素调用一个函数。
includes() 检查数组是否包含指定元素。
sort() 按字母顺序对字符串元素排序,按升序对数字元素排序。
slice() 选择数组的一部分并将其作为新数组返回。
splice() 删除或替换现有元素,和/或添加新元素。

要了解更多,请访问 JavaScript 数组方法


更多关于 JavaScript 数组

使用 new 关键字创建数组。

您也可以使用 JavaScript 的 new 关键字创建数组。例如,

const array2 = new Array("eat", "sleep");
console.log(array2); // Output: [ 'eat', 'sleep' ]

注意:为了更好的可读性和执行速度,最好使用数组字面量 [] 来创建数组。

使用 pop() 和 shift() 方法从数组中删除元素。

我们可以使用内置方法,如 pop()shift(),从数组中删除元素。

1. 使用 pop() 删除最后一个元素。

let dailyActivities = ['work', 'eat', 'sleep', 'exercise'];

// remove the last element dailyActivities.pop();
console.log(dailyActivities); // Output: [ 'work', 'eat', 'sleep' ]

2. 使用 shift() 删除第一个元素。

let dailyActivities = ['work', 'eat', 'sleep', 'exercise'];

// remove the first element dailyActivities.shift();
console.log(dailyActivities); // Output: [ 'eat', 'sleep', 'exercise' ]

要了解更多,请访问 Array pop()Array shift()

数组的长度。

我们可以使用 length 属性查找数组的长度。例如,

const dailyActivities = [ "eat", "sleep"];

// return the length of array console.log(dailyActivities.length);
// Output: 2
JavaScript 中数组和对象之间的关系。

在 JavaScript 中,数组是一种对象。但是,

  • 数组使用数字索引来访问元素。
  • 对象使用命名索引(键)来访问值。

由于数组是对象,因此数组元素是按引用存储的。因此,当我们分配一个数组给另一个变量时,我们只是指向内存中的同一个数组。

所以,改变一个也会改变另一个,因为它们本质上是同一个数组。例如,

let arr = ["h", "e"];

// assign arr to arr1 let arr1 = arr; // change arr1 arr1.push("l");
console.log(arr); console.log(arr1);

输出

  [ 'h', 'e', 'l' ]
[ 'h', 'e', 'l' ]

在这里,我们修改了复制的数组 arr1,这也修改了原始数组 arr


另请阅读

在我们结束之前,让我们测试一下您的 JavaScript 数组知识!您能解决下面的挑战吗?

挑战

编写一个函数来计算数组中数字的总和。

  • 返回数组 arr 中所有数字的总和。
  • 例如,如果 arr[] = [10, 20, 30],则预期输出是 10 + 20 + 30 = 60
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战