从数组中删除元素,在Javascript中指定值

Dou*_*eux 9 javascript arrays

我读过这个问题:

在JavaScript中删除数组元素 - 删除vs splice

并且似乎splice和delete都需要元素的索引才能删除,所以当我有值时,如何轻松找到索引?

例如,如果我有一个如下所示的数组:

["test1", "test2", "test3"]
Run Code Online (Sandbox Code Playgroud)

我想删除test2.我现在正在使用的进程,我希望这不是正确的方法,使用$.each检查数组中每个元素的值,通过进程维护一个计数器(用作索引引用),如果该值等于"test2",然后我有我的索引(以计数器的形式),然后使用splice删除它.

虽然阵列越来越大,我想这会是一个缓慢的过程,但我有什么替代方案?

Rio*_*ams 4

您想使用splice()函数删除该项目,indexOf将在数组中找到它:

查找数组中的特定元素:(知道要删除哪个元素)

var index = array.indexOf('test2'); 
Run Code Online (Sandbox Code Playgroud)

完整示例:

var array = ['test1', 'test2', 'test3'];
var value_to_remove = 'test2';
array.splice(array.indexOf(value_to_remove), 1); 
Run Code Online (Sandbox Code Playgroud)

工作演示