javascript - 从 JavaScript 中的大数组中删除单个元素的最有效方法是什么?
问题描述
我们有一个用 Vue.js 编写的网站,它从 API 中检索许多对象并将它们存储为一个数组。用户在数据表中看到此数据,并有机会一次删除单个项目。此数组中的对象数量通常在 700-2000 范围内,但理论上可以在 0 到数万之间(极不可能)
那么我的问题是:从这个数组中删除一个元素的最有效方法是什么?
我们目前正在使用 splice() 方法,但据我了解,这是非常低效的,因为用户几乎总是删除前 20 个元素中的一个,导致几乎整个数组都被分配了新的索引值。
先反转数组,拼接,然后再反转会更有效吗?使用 filter() 方法?使用 for/while 循环遍历数组并创建一个包含除排除元素之外的所有内容的新数组?
解决方案
在对虚拟数据进行一些测试后,我了解到拼接方法在 2000 个元素的数组上使用 1ms。问题是我是如何实现 Vuex 商店的,这导致了相当大的延迟。
推荐阅读
- php - 如何在继承的类中设置父类变量的值,然后在继承的函数中使用它?
- sql-server - 当 LAST_VALUE 的 LastUpdated 时间在条件范围内时,不显示任何行
- css - 如何在背景图像之后放置线性渐变?
- gatling - 在 Gatling 中通过 alt 查找图像 src
- r - 将列动态添加到 R 中的数据框
- java - Vscode:跨越多行 System.out.print()
- wagtail - 删除页面后如何自动删除链接到页面的图像?
- google-sheets - 查找条件总和以确定库存表中剩余的已售单位数
- flutter - 在 Dart 中使用过渡在屏幕之间导航
- groovy - Groovy Builder 转换真的有效吗?