Método copyWithin() en JavaScript
El método copyWithin() copia elementos del arreglo en otra posición dentro del arreglo sin cambiar el tamaño del array. Este método devuelve el array con lo cambios dados.
Ten en cuenta que este método sobrescribe el arreglo original.
Sintaxis
arreglo.copyWithin(target, start, end);
Ejemplo:
['a', 'b', 'c', 'd', 'e'].copyWithin(2, 0, 2); // ["a", "b", "a", "b", "e"]
En este caso le estamos pasando como target el número 2, esto significa que desde esa posición va a comenzar a copiar los elementos que le pasemos.
La posición 2 del arreglo vendria a ser "c", entonces desde ese lugar vamos a comenzar a copiar.
Como segundo argumento le estamos pasando 0, esto significa que vamos a copiar los elementos que empiecen desde el inicio del arreglo en este caso, "a".
Y como tercer argumento le estamos pasando 2, esto quiere decir que vamos a copiar hasta esa posición, en este caso "c", pero debemos tomar en cuenta que no podemos usar ese elemento.
Entonces explicado lo anterior, vamos a copiar "a" y "b", empezando desde "c", entonces "c" sera cambiado por "a" y "d" por "b", "e" quedaría igual ya que solo tenemos dos elementos a cambiar.
Aunque es un poco complicado de entender al inicio, una vez que lo entiendes ya se vuelve más fácil de usar. Te recomiendo que practiques cambiando los argumentos de la función.