在 JavaScript 中实现 Arraylist

Nithin Krishnan 2023年10月12日
  1. 在 JavaScript 中创建数组元素
  2. 在 JavaScript 中访问数组元素
  3. 在 JavaScript 中向数组添加元素
  4. 从数组中删除元素
在 JavaScript 中实现 Arraylist

我们非常熟悉 Java 中的 Arraylist,它允许我们在不指定数组大小的情况下向数组添加元素。这是一个不错的功能,但我们在 JavaScript 中有类似的功能吗?每种语言都有自己的一组数据结构。在 JavaScript 中,我们有可以存储同构值和异构值的数组。异构意味着值可能是各种数据类型,如字符串、数字、布尔值等,都放在一个数组中。与 Java 中的 ArrayList 相比,它是一个独特且更好的特性。

在 JavaScript 中创建数组元素

在 JavaScript 中创建数组很容易。我们使用 var 关键字创建一个数组。它类似于我们在 Java 中使用 ArrayList 创建数组的方式。Java 坚持指定 ArrayList 的数据类型。但是在 JavaScript 中,我们并没有明确声明 Array 的数据类型。我们让 JavaScript 解释器根据数组中分配的值做出决定。无论如何,对于 JavaScript,数组的类型是 object。参考以下代码创建一个 Array。

var a = [1, 6, 3, 5];
console.log(a.length);
console.log(typeof a);
console.log(typeof a[2]);

输出:

4
object
number
  • length:JavaScript 具有 length 属性,可返回数组的大小。
  • typeoftypeof 是一元运算符。它用于在 JavaScript 中查找操作数的类型。上面的代码使用 typeof 运算符将 Array 的数据类型作为 object 返回。

在 JavaScript 中访问数组元素

就像 Java 中的 Arraylist 一样,我们可以使用循环、for 循环和 while 循环遍历 JavaScript 数组。JavaScript 还具有 .foreach() 函数,用于迭代数组中的元素。我们可以使用 foreach() 在每个 Array 元素上执行某些代码行。foreach 函数接受一个函数作为参数。我们可以将此函数编写为内联函数。检查下面的代码片段以更好地理解。

var a = ['hello', 1, false];
a.forEach((i) => {
  console.log(typeof i);
})

输出:

string
number
boolean

在这里,我们对 Array 的每个元素应用 typeof 操作。该代码进一步将输出记录到 Web 浏览器控制台。JavaScript 有另一个函数,.reverse() 函数,它反转数组中元素的位置。参考以下代码。

var a = ['hello', 1, false];
console.log(a.reverse());

输出:

[false, 1, "hello"]

上述日志是在 Google Chrome 网络浏览器控制台中获得的。

在 JavaScript 中向数组添加元素

我们可以使用 Java 中的 .add() 函数将元素添加到 ArrayList。类似地,在 JavaScript 中,我们有一些函数可以用来在数组的不同位置添加元素。

  • .push():顾名思义,我们可以使用 push() 函数将元素添加到数组中。它将作为参数传递给函数的元素附加到数组的末尾。push() 函数改变原始数组。因此,在代码中使用它时要注意它。添加新元素后,它返回数组的修改大小。
  • .unshift():如果我们必须在数组的开头添加一个元素,这将是一项繁忙的任务,因为我们需要通过索引重新定位数组中的所有内容。我们可以使用 JavaScript 中的 .unshift() 函数来完成这个任务。使用 unshift(),我们可以将一个或多个元素添加到数组的开头。我们将希望添加到 Array 的元素作为参数传递给 unshift 函数。
var a = ['hello', 1, false];
a.push(2.15);
console.log(a);
a.unshift(123);
console.log(a);

输出:

["hello", 1, false, 2.15]
[123, "hello", 1, false, 2.15]

输出是在 google chrome 网络浏览器中获得的。请注意,这些操作无需使用赋值运算符即可更改原始数组。

从数组中删除元素

同样,我们可以使用以下 JavaScript 函数从数组中删除元素。它类似于 Java 中 ArrayListremove() 函数。

  • .pop() 如果我们要从 array 后面删除一个元素,我们可以使用 .pop() 函数。请注意,该函数会更改原始 Array 并返回它刚刚弹出的最后一个元素。
  • .shift() 如果我们必须从数组的开头删除一个元素,我们可以使用 .shift() 函数。与 .pop() 一样,.shift() 也会改变原始数组。所以在使用 .shift() 函数时要注意。
var a = [123, 'hello', 1, false, 2.15];
a.pop();
console.log(a);
a.shift();
console.log(a);

输出:

[123, "hello", 1, false]
["hello", 1, false]

这里有几点需要注意。

  1. pop()shift() 函数都不接受任何参数。它们用于在给定时间从数组中删除一个元素。
  2. 他们无需赋值运算符即可更改原始数组。因此,我们必须明智地使用它们,否则我们可能会陷入难以调试的未知副作用。

从数组中添加和删除多个元素

JavaScript 中有另一种方法,splice() 函数。我们可以使用它从数组中添加或删除一个或多个元素。splice() 函数采用以下几个参数。

  • startIndex:我们使用 startIndex 参数指定数组索引。
  • count:此参数指定我们希望从数组中删除的元素数量。如果未指定计数,则 splice() 将删除从 startIndex 到数组末尾的所有元素。
  • elements:最后一个参数是我们希望从 startIndex 添加到数组的元素列表。如果在 splice() 函数中没有指定元素,它将从数组中删除元素。

让我们看看下面的代码来了解更多。

var a = [123, 'hello', 1, false, 2.15];
a.splice(2, 1, 'there');
console.log(a);
a.splice(2, 2);
console.log(a);
a.splice(2);
console.log(a);

输出:

[123, "hello", "there", false, 2.15]
[123, "hello", 2.15]
[123, "hello"]

相关文章 - JavaScript Array