vacios - ¿Cómo eliminar un elemento de una matriz en JavaScript?
eliminar un elemento de un array java (9)
El método Array.prototype.shift
elimina el primer elemento de una matriz y lo devuelve. Modifica la matriz original.
var a = [1,2,3]
// [1,2,3]
a.shift()
// 1
a
//[2,3]
var arr = [1,2,3,5,6];
Quiero eliminar el primer elemento de la matriz para que se convierta en:
var arr = [2,3,5,6];
Para ampliar esta pregunta, ¿qué pasa si quiero eliminar el segundo elemento de la matriz para que se convierta en:
var arr = [1,3,5,6];
Escribió un pequeño artículo sobre la inserción y eliminación de elementos en posiciones arbitrarias en matrices de Javascript.
Aquí está el pequeño fragmento para eliminar un elemento de cualquier posición. Esto extiende la clase Array en Javascript y agrega el método de eliminación (índice).
// Remove element at the given index
Array.prototype.remove = function(index) {
this.splice(index, 1);
}
Para eliminar el primer elemento de su ejemplo, llame a arr.remove ():
var arr = [1,2,3,5,6];
arr.remove(0);
Para eliminar el segundo elemento,
arr.remove(1);
Aquí hay un pequeño article con los métodos de insertar y eliminar para la clase Array.
Esencialmente, esto no es diferente de las otras respuestas que usan el empalme, pero el nombre splice
no es intuitivo, y si tiene esa llamada en toda su aplicación, solo hace que el código sea más difícil de leer.
Para una solución más flexible, use la función splice()
. Le permite eliminar cualquier elemento de una matriz según el valor del índice:
var indexToRemove = 0;
var numberToRemove = 1;
arr.splice(indexToRemove, numberToRemove);
Puede utilizar la función Asignación de destrucción de ES6 con un operador de descanso. Una coma indica dónde desea eliminar el elemento y el operador de resto (... arr) para darle los elementos restantes de la matriz.
const source = [1,2,3,5,6];
function removeFirst(list) {
var [, ...arr] = source;
return arr;
}
const arr = removeFirst(source);
console.log(arr); // [2, 3, 5, 6]
console.log(source); // [1, 2, 3, 5, 6]
Si desea eliminar uno o varios elementos de una matriz, depende de su contenido y / o su posición .
Puede utilizar la función de matriz de filter
js.
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/filter .
Eliminar el primer elemento :
// Not very useful but it works
function removeFirst(element, index) {
return index > 0;
}
var arr = [1,2,3,5,6].filter(removeFirst); // [2,3,4,5,6]
Eliminar segundo elemento :
function removeSecond(element, index) {
return index != 1;
}
var arr = [1,2,3,5,6].filter(removeSecond); // [1,3,4,5,6]
Eliminar elemento impar :
function removeOdd(element, index) {
return !(element % 2);
}
var arr = [1,2,3,5,6].filter(removeOdd); [2,4,6]
Tal vez algo como esto:
arr=arr.slice(1);
shift()
es ideal para su situación. shift()
elimina el primer elemento de una matriz y devuelve ese elemento. Este método cambia la longitud de la matriz.
array = [1, 2, 3, 4, 5];
array.shift(); // 1
array // [2, 3, 4, 5]
Array.splice()
tiene la interesante propiedad de que no se puede usar para eliminar el primer elemento. Por lo tanto, tenemos que recurrir a
function removeAnElement( array, index ) {
index--;
if ( index === -1 ) {
return array.shift();
} else {
return array.splice( index, 1 );
}
}
arr.slice(begin[,end])
no es destructivo, splice y shift modificarán tu matriz original