首页 > 解决方案 > 从 JavaScript 中的大数组中删除单个元素的最有效方法是什么?

问题描述

我们有一个用 Vue.js 编写的网站,它从 API 中检索许多对象并将它们存储为一个数组。用户在数据表中看到此数据,并有机会一次删除单个项目。此数组中的对象数量通常在 700-2000 范围内,但理论上可以在 0 到数万之间(极不可能)

那么我的问题是:从这个数组中删除一个元素的最有效方法是什么?

我们目前正在使用 splice() 方法,但据我了解,这是非常低效的,因为用户几乎总是删除前 20 个元素中的一个,导致几乎整个数组都被分配了新的索引值。

先反转数组,拼接,然后再反转会更有效吗?使用 filter() 方法?使用 for/while 循环遍历数组并创建一个包含除排除元素之外的所有内容的新数组?

标签: javascriptarrays

解决方案


在对虚拟数据进行一些测试后,我了解到拼接方法在 2000 个元素的数组上使用 1ms。问题是我是如何实现 Vuex 商店的,这导致了相当大的延迟。


推荐阅读