Aquí hay un comportamiento extraño que encontré mientras usaba empalme.
const numbers = [1, 2, 3]; numbers.splice(0, 0, 4, 5); console.log(numbers); // This gives output [4, 5, 1, 2, 3] console.log([1, 2, 3].splice(0, 0, 4, 5)) // Outputs []¿Porqué es eso?
La función Array.splice por sí misma devuelve el rango de elementos que tiene comenzando desde el primer argumento y terminando en el segundo argumento. Todo lo que viene después del segundo argumento se agrega automáticamente al final de su matriz original, PERO no se devuelve como resultado de la operación.
const numbers = [1, 2, 3]; console.log(numbers.splice(0, 0, 4, 5)) // <- prints nothing because your sequence is from 0 to 0.El método de splice no devuelve la salida, sino que modifica la matriz original.