Tengo una matriz con 8 elementos. ¿Cómo muevo los últimos 4 elementos al frente?
Puede usar Array.prototype.concat() combinado con Array.prototype.slice() :
const arr = [1, 2, 3, 4, 5, 6, 7, 8] const result = arr.slice(4).concat(arr.slice(0, 4)) console.log(result)Una versión más dinámica:
const arr = [1, 2, 3, 4, 5, 6, 7, 8] const half = arr.length / 2 const result = arr.slice(half).concat(arr.slice(0, half)) console.log(result)Puede utilizar una combinación del método Array.prototype.slice y el operador Spread .
Primero distribuya los últimos cuatro elementos de la matriz original y luego distribuya los elementos restantes desde el principio.
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], newArr = [...arr.slice(-4), ...arr.slice(0, -4)]; console.log(newArr);También puede hacerlo simplemente usando Array.prototype.Splice , pero recuerde que muta la matriz original.
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; arr.splice(0, 0, ...arr.splice(-4)); console.log(arr);Si está de acuerdo en mutar la matriz (en lugar de crear una nueva), splice los últimos cuatro elementos y luego unshift al comienzo de la matriz.
(Nota: el splice devuelve una matriz, por lo que debe spread los elementos).
const arr = [1, 2, 3, 4, 5, 6, 7, 8]; arr.unshift(...arr.splice(-4)); console.log(arr);