var arr = [1,2,3,5,6];
Eliminar el primer elemento
Quiero eliminar el primer elemento de la matriz para que se convierta en:
var arr = [2,3,5,6];
Eliminar el segundo elemento
Para extender esta pregunta, ¿qué pasa si quiero eliminar el segundo elemento de la matriz para que se convierta en:
var arr = [1,3,5,6];
javascript
arrays
usuario198729
fuente
fuente
slice(start, end)
no 'how_many_to_remove'splice
noslice
supongo.Respuestas:
Para una solución más flexible, use la
splice()
función. Le permite eliminar cualquier elemento de una matriz según el valor del índice:fuente
arr.splice(1,1)
para el segundo elemento.splice()
sobreshift()
porque es más flexible. Es posible que desee hacer algo diferente en el futuro, y no siempre quiero eliminar solo un elemento, o incluso el primer elemento.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.fuente
shift()
asplice(..., ...)
, ya que es mucho más explícita y directa.shift
es más rápido a menos que empalmes listas grandes jsperf.com/splice-vs-shift3 y jsperf.com/splice-vs-shift2El
Array.prototype.shift
método elimina el primer elemento de una matriz y lo devuelve. Modifica la matriz original.fuente
no es destructivo, el empalme y el cambio modificarán su matriz original
fuente
Escribió un pequeño artículo sobre la inserción y eliminación de elementos en posiciones arbitrarias en matrices 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 remove (index).
Entonces, para eliminar el primer elemento en su ejemplo, llame a arr.remove ():
Para eliminar el segundo elemento,
Aquí hay un pequeño artículo con métodos de inserción y eliminación para la clase Array.
Esencialmente, esto no es diferente a 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.fuente
Tal vez algo como esto:
fuente
Otras respuestas son grandes, yo sólo quería añadir una solución alternativa con
ES6
la función de matriz:filter
.filter()
crea una nueva matriz con elementos que caen bajo un criterio dado de una matriz existente.Por lo tanto, puede usarlo fácilmente para eliminar elementos que no pasan los criterios. Las ventajas de esta función es que puede usarla en una matriz compleja, no solo en cadenas y números.
Eliminar primer elemento :
Eliminar segundo elemento :
Eliminar elemento impar :
Eliminar artículos no disponibles
fuente
Puede usar la función ES6 Destructuring Assignment con un operador de descanso. Una coma indica dónde desea eliminar el elemento y el operador rest (... arr) para proporcionarle los elementos restantes de la matriz.
fuente
Array.splice()
tiene la propiedad interesante de que no se puede usar para eliminar el primer elemento. Entonces, necesitamos recurrir afuente
Solución mecanografiada que no muta la matriz original
fuente
Hay varias formas de eliminar un elemento de una matriz. Permítanme señalar las opciones más utilizadas a continuación. Estoy escribiendo esta respuesta porque no pude encontrar una razón adecuada sobre qué usar de todas estas opciones. La respuesta a la pregunta es la opción 3 ( Empalme () ).
1) SHIFT () - Eliminar el primer elemento de la matriz original y devolver el primer elemento
Ver referencia para Array.prototype.shift () . Use esto solo si desea eliminar el primer elemento, y solo si está de acuerdo con cambiar la matriz original.
2) SLICE (): devuelve una copia de la matriz, separada por un índice inicial y un índice final
Consulte la referencia para Array.prototype.slice () . No puede eliminar un elemento específico de esta opción. Solo puede tomar una porción de la matriz existente y obtener una porción continua de la matriz. Es como cortar la matriz de los índices que especifique. La matriz original no se ve afectada.
3) SPLICE (): cambia el contenido de la matriz eliminando o reemplazando elementos en índices específicos.
Consulte la referencia de Array.prototype.splice () . El método splice () cambia el contenido de una matriz al eliminar o reemplazar elementos existentes y / o agregar nuevos elementos en su lugar. Devuelve una matriz actualizada. La matriz original se actualiza.
fuente
También puedes hacer esto con reduce:
fuente