Tengo una matriz input
y otra matriz indexes
. Quiero eliminar el elemento de la matriz input
cuyo índice se proporciona en la matriz indexes
.
Lo he intentado usando array.splice
en for loop
pero a medida que se elimina item
en cada iteración, se cambian los índices de otros elementos.
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);
3 respuestas
Puede utilizar Array.prototype.filter
y haga lo siguiente:
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);
Aquí está utilizando forEach loop que le da el elemento como primer argumento y el índice en el segundo, por lo que, según tengo entendido, lo que quiere hacer puede lograr con esto, intente con la esperanza de que esto resuelva su problema :)
indexes.forEach(function(item, index) {
array.splice(index, 1);
});
Ordene la matriz de índices de mayor a menor, luego spice solo cambiará el índice de los números que ya ha eliminado
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.