javascript - 从 JavaScript 数组中移除索引数组

标签 javascript arrays indices

我有一个数组:

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']

我有一个索引数组,我想删除它们:

var remove = [1, 3, 5]

所以结果是:

arr ==== ['A', 'C', 'E', 'G']

我不能在一个循环中用 splice 来做:

// WRONG
for (i = 0, l = remove.length; i < l; i++) {
    arr.splice(remove[i]);
}

因为在每次迭代之后,每个元素的索引都发生了变化。

那我该怎么做呢?

最佳答案

> arr.filter(function(x,i){return remove.indexOf(i)==-1})
["A", "C", "E", "G"]

为了更高效,首先将remove转换成对象/哈希表,如下所示:

var removeTable = {}
remove.forEach(function(x){removeTable[x]=true})

> arr.filter(function(x,i){return removeTable[i]})
["A", "C", "E", "G"]

关于javascript - 从 JavaScript 数组中移除索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10265321/

相关文章:

javascript - 默认情况下具有一键的对象(getter/setter)

javascript - Angularjs 每 3 列创建一行

c - 在 C : Is it faster to access a char* = malloc() used like a 2D array than an array[][]?

c - 如何获取 C 中 float 组的顶部索引并将其与存储在另一个数组中的字符串配对

python - 用 Python 列表中的值交换索引?

Python:删除满足特定条件的所有列表索引

javascript - 清除间隔未捕获

javascript - 更改 JavaScript 中选定单选按钮的标签颜色

Javascript 递归错误

java - 如何使两个字符串之间随机连接