如何在 JavaScript 中截断数组?


本教程将介绍如何在 JavaScript 中截断数组。截断数组意味着从数组末尾去除一些元素,并将截断后的新数组值重新赋值给原始数组。

有时我们需要截断数组。例如,假设有一个数组,其中包含已排序(降序)的元素,现在我们只需要数组中前 k 个排序的元素,并删除其余元素。因此,我们不需要创建额外的数组,修改它并将其分配给原始数组。

截断数组的方法有很多,让我们看看所有这些方法。

语法

以下是截断数组的语法

arr.splice(index, howmany); // the splice() method.
arr.length=idx; // array length property.

这里arr是原始数组。idx是要截断数组的索引/位置。index是要删除元素的位置,howmany是要从数组中删除的元素数量。

算法

  • 步骤 1 - 创建一个数组arr并向其中添加元素。使用 innerHTML 属性显示 arr。
  • 步骤 2 - 对数组 arr 应用splice()方法,传递indexhowmany作为参数。或者,我们可以应用 arr.length=idx。
  • 步骤 3 - 使用 innerHTML 属性显示截断后的数组。

示例 1

使用Array splice()方法

在下面的示例中,我们使用数组 splice() 方法来截断数组。我们定义了一个包含七个元素的数组。我们截断了位置 3 之后的元素。

<html> <head> <title>Example- Truncate an array in JavaScript</title> </head> <body> <h3>Truncate an Array using splice() Method-</h3> <p id="before">Array before truncate:<br></p> <p id="after">Array after truncate:<br></p> <script> let arr = ["kalyan", "ashis", "anand", "sonu", "tirupati", "nagar", "arjun"]; document.getElementById('before').innerHTML+=arr arr.splice(4, arr.length); document.getElementById('after').innerHTML+=arr </script> </body> </html>

示例 2

使用数组 length 属性

在这个示例中,我们使用数组 length 属性来截断数组。我们只需将所需的长度分配给数组,其大小就会根据分配的大小而改变。

<html> <head> <title>Example- Truncate an array in JavaScript</title> </head> <body> <h3>Truncate an Array using Array length property-</h3> <p id="before">Array before truncate:<br></p> <p id="after">Array after truancate:<br></p> <script> let arr = ["kalyan", "ashis", "anand", "sonu", "tirupati", "nagar", "arjun"]; document.getElementById('before').innerHTML+=JSON.stringify(arr) arr.length=4 document.getElementById('after').innerHTML+=JSON.stringify(arr) </script> </body> </html>

在这里,我们使用 arr.length=4 将数组的大小更改为 4。它获取了前 4 个元素,之后所有元素都被从数组中删除。

它有一个缺点,即我们只会获得从起始索引 0 到给定大小的元素,这与 splice 不同,在 splice 中我们可以选择定义起始和结束索引。

现在您可能会有一个疑问。如果我们分配的大小大于数组长度会发生什么?然后,在数组大小之后,我们将获得一个未定义的数组元素。

示例 3

在下面的示例中,我们定义了一个长度为 7 的数组,然后分配了一个大于数组长度的大小。

<html> <body> <p id="result1"><p> <p id="result2"><p> <script> let arr = ["kalyan", "ashis", "anand", "sonu", "tirupati", "nagar", "arjun"]; arr.length=15 document.getElementById('result1').innerHTML=JSON.stringify(arr); document.getElementById('result2').innerHTML=arr[13]; </script> </body> </html>

在这里,我们将数组大小从 7 更改为 15,而没有向数组中添加元素。请注意,从索引 7 到 14 的元素为 null。

示例 4

使用Array slice()方法

在下面的示例中,我们使用数组 slice() 方法来截断数组。Array slice() 方法不会更改原始数组,它只会根据给定的参数返回元素。因此,我们需要将返回的元素存储在一个变量中。

我们定义了一个包含七个元素的数组。我们截断了位置 3 之后的元素。

<html> <head> <title>Example- Truncate an array in JavaScript</title> </head> <body> <h3>Truncate an Array using slice() Method</h3> <p id="before">Array before truncate:<br></p> <p id="after">Array after truncate:<br></p> <script> let arr = ["kalyan", "ashis", "anand", "sonu", "tirupati", "nagar", "arjun"]; document.getElementById('before').innerHTML+=arr arr = arr.slice(0, 4); document.getElementById('after').innerHTML+=arr </script> </body> </html>

这里 arr = arr.slice(0, 4); 0 是数组的起始索引,4 是我们要截取数组的结束索引,在给定起始索引之前和结束索引之后的所有元素都将被删除,然后我们将更新后的数组分配给原始数组。

If arr = arr.slice(2, 5); will be there then output will be
Anand, sonu, tirupati

在本教程中,我们学习了如何使用数组 splice() 和 slice() 方法以及 length 属性来截断 JavaScript 中的数组。

更新于: 2022-08-16

3K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.