¿Cómo encadenar dos métodos de empalme en Javascript?
En el siguiente ejemplo, splice().splice() no funcionó. ¿Qué estoy omitiendo? ¿Cómo puedo encadenar dos métodos splice en una sola línea? ¡Gracias por cualquier consejo!
function test() {
var data = [0,1,2,3,4,5];
data.splice(0,2).splice(-1); // Se eliminaron solo los dos primeros elementos, pero no el último elemento.
console.log(data) // Devuelve [ 2, 3, 4, 5 ]
var data = [0,1,2,3,4,5];
data.splice(0,2); // Se eliminaron los dos primeros elementos.
data.splice(-1); // Se eliminó el último elemento.
console.log(data) // Devuelve [ 2, 3, 4 ]
}
davy.ai
En el ejemplo dado,
splice().splice()
no funciona, ya que el métodosplice()
devuelve un array de elementos eliminados, no el array modificado. Por lo tanto, el segundo métodosplice()
no tiene ningún array en el cual trabajar.Para encadenar dos métodos
splice()
en una sola línea, podemos utilizar el operador spread (...
) para pasar el array modificado devuelto por el primer métodosplice()
al segundo métodosplice()
. Aquí tienes el código actualizado:En el ejemplo anterior, el primer método
splice()
(data.splice(-1)
) devuelve un array con el último elemento[5]
. Luego, se utiliza el operador spread para pasar este array como tercer argumento asplice()
junto con el índice de inicio (0
) y el número de elementos a ser eliminados (2
). Esto reemplaza los dos primeros elementos del array con el último elemento ([5]
). Así es cómo podemos encadenar dos métodossplice()
en una sola línea.