我有一个数组input
和另一个数组indexes
。我想从数组input
中删除其索引在indexes
数组中提供的项。
我已经在for loop
中使用array.splice
进行了尝试,但由于每次迭代都会删除item
,所以其他项目的索引也会发生变化。
JavaScript:
var array = [10, 11, 12, 13, 14, 15];
var indexes = [0, 1, 2, 3, 4, 5];
indexes.forEach(function(item) {
array.splice(item, 1);
});
console.log(array);
您可以使用Array.prototype.filter
并执行以下操作:
var array = [10, 11, 12, 13, 14, 15];
var indexes = [0, 1, 2, 3, 4, 5];
array = array.filter(function(x, i) {
return indexes.indexOf(i) === -1;
});
console.log(array);
这里你使用的是forEach循环,它给你项目作为第一个参数,给你第二个参数的索引,所以根据我的理解,你想做什么可以通过这个实现,试试这个,希望这能解决你的问题:)
indexes.forEach(function(item, index) {
array.splice(index, 1);
});
将索引数组从高到低排序,然后spice只会更改已删除的数字的索引