Ejercicio 24:
Programa una función que dado un arreglo de números devuelva un objeto con dos arreglos, el primero tendrá los numeros ordenados en forma ascendente y el segundo de forma descendiente, por ejemplo miFuncion([7, 5,7,8,6]) devolverá { asc: [5,6,7,7,8], desc: [8,7,7,6,5] }
La forma en que lo hice:
Creo la función expresada ordenarArreglo con la variable arr como parámetro que lo inicializo como undefined. Realizo todas las validaciones.
En el return con console.info creo el objeto que va a tener el atributo asc de ascendiente y desc de descendiente. Utilizo el métoco .map() y los ordeno con el método
const ordenarArreglo = (arr = undefined) =>{
if(arr === undefined) return console.warn("No ingresaste un arreglo de números.");
if(!(arr instanceof Array)) return console.error("El valor que ingresaste no es un arreglo");
if(arr.length === 0) return console.error("El arreglo está vacío");
for(let num of arr) {
if(typeof num !== "number") return console.error(`El valor ${num} ingresado no es un número`);
}
return console.info({
arr,
asc: arr.map(el => el).sort(),
desc: arr.map(el => el).sort().reverse(),
})
}
Llamo a mi función ordenarArreglo sin parámetro para verificar las validaciones
ordenarArreglo();
Llamo a mi función ordenarArreglo con una String como parámetro para verificar las validaciones
ordenarArreglo("Hola");
Llamo a mi función ordenarArreglo con un Array vacío como parámetro para verificar las validaciones
ordenarArreglo([]);
Llamo a mi función ordenarArreglo con un Array de números como parámetro para verificar las validaciones
ordenarArreglo([7,2,8,9,6,7]);
Con F12 pueden inspeccionar 🧐 por consola el código en acción.