考虑到来自另一个阵列的索引,拼接阵列中的项



我有一个数组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只会更改已删除的数字的索引

最新更新