Array.prototype.reverse invierte el contenido de una matriz en su lugar (con mutación)...
¿Existe una estrategia igualmente simple para invertir una matriz sin alterar el contenido de la matriz original (sin mutación)?
Puede usar slice() para hacer una copia y luego revertirla()
var newarray = array.slice().reverse(); var array = ['a', 'b', 'c', 'd', 'e']; var newarray = array.slice().reverse(); console.log('a', array); console.log('na', newarray);En ES6:
const newArray = [...array].reverse()Otra variante de ES6:
También podemos usar .reduceRight() para crear una matriz invertida sin invertirla.
let A = ['a', 'b', 'c', 'd', 'e', 'f']; let B = A.reduceRight((a, c) => (a.push(c), a), []); console.log(B);Recursos útiles: