在 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
属性,可返回数组的大小。typeof
:typeof
是一元运算符。它用于在 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 中 ArrayList
的 remove()
函数。
.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]
这里有几点需要注意。
pop()
和shift()
函数都不接受任何参数。它们用于在给定时间从数组中删除一个元素。- 他们无需赋值运算符即可更改原始数组。因此,我们必须明智地使用它们,否则我们可能会陷入难以调试的未知副作用。
从数组中添加和删除多个元素
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"]