编程技术文章分享与教程

网站首页 > 技术文章 正文

碎片时间学编程「351]:快速删除无序 JavaScript 数组中的元素

hmc789 2024-11-27 14:46:30 技术文章 2 ℃


Array.prototype.splice() 是从数组中删除元素的最常用方法。但事实证明这并不是最快的。如果您要使用大型数组执行许多操作,这可能是影响代码性能的一个特别重要的因素。 您可以使用一个非常简单的技巧来加速此操作,但数组中元素的顺序不能对其起作用。如果后者为真,则可以毫无问题地交换数组中的两个元素。例如,这意味着您可以将任何元素与最后一个元素交换。但是使用 Array.prototype.pop() 删除最后一个元素既简单又快速,因此您可以利用它来发挥自己的优势。例如:

const arr = [3, 1, 5, 7, 9];  // Want to remove 5 (index: 2)

arr[2] = arr[arr.length -1];  // Copy last element to 3rd place
arr.pop();                    // Remove the last element

在此示例中,我们要删除数组中间的一个元素。我们首先将要删除的元素与最后一个元素进行交换。但是,我们不需要实际交换它们。我们需要做的就是确保最后一个元素位于我们要删除的元素的位置。我们可以简单地将其复制到该位置,然后使用 Array.prototype.pop() 删除最后一个元素。 顺便说一句,人们可能会认为将其缩短为 arr[i] = arr.pop() 会让它变得更简洁。事实证明情况并非如此,因为如果我们尝试删除数组中的最后一个元素,这个较短的版本将会失败。

更多内容请访问我的网站:https://www.icoderoad.com

Tags:

标签列表
最新留言