Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
4
respuestas

Duda arrays

  • Crea una función que muestre en la consola todos los elementos de la lista "lenguagesDeProgramacion en orden inverso.

let lenguajesDeProgramacion = [ 'JavaScript,', 'C,', 'C++,', 'Kotlin,', 'Python,', 'Java,', 'Ruby', ]; let listaReves = lenguajesDeProgramacion.reverse();

function listaDeLenguajes() { console.log(lenguajesDeProgramacion); }

function listaDeLenguajesReves() { console.log(listaReves); } listaDeLenguajesReves(); listaDeLenguajes();

porque cuando veo en la consola no muestra la lista al inverso y normal, sino que nada mas muestra la inversa???

4 respuestas
solución!

El reverse() actúa sobre el array lenguajesDeProgramacion y modifica el mismo de manera permanente. Entonces te queda un array en orden inverson de manera permanente. Cuando hacés let listaReves = lenguajesDeProgramacion.reverse();, no se crea un nuevo array, sino que invierte el array original y lo asigna a la variable listaReves.

Para evitar este problema, puedes hacer algo tipo:

let lenguajesDeProgramacion = [ "JavaScript", "C", "C++", "Kotlin", "Python", "Java", "Ruby", ];

// Puedes crear un array ya invertido que no modifique el original con el .slice() let listaReves = lenguajesDeProgramacion.slice().reverse();

function listaDeLenguajes() { console.log(lenguajesDeProgramacion); }

function listaDeLenguajesReves() { console.log(listaReves); }

listaDeLenguajes(); listaDeLenguajesReves();

el .slice() te crearía una copia superficial del array original, sin afectar el original e invertirle el orden de manera permanente. Así evitás que se toque el array original y que la consola te tire dos arrays a la inversa!

Muchas gracias Kevin! No conocia esa funcion .slice

Hola oscar, mira para que te retorne un arrayList con los valores al reverso debes realizarun bucle que recorra odo el arrayList de programas que creaste, en el caso como lo hiciste tu si le da el reverso a lo que esta en el array, pero el valor lo arroja en una variable no en un arraylist o vector, ya que en tu codigo usaste un metodo .reverse(); si fueses iterado con un bucle for por ejemplo lograrias esto, te voy a dejar mi codigo ya que tengo alli las dos formas asi te das cuenta espero te pude ayudar saludo

/Crea una lista de lenguajes de programación llamada "lenguagesDeProgramacion con los siguientes elementos: 'JavaScript', 'C', 'C++', 'Kotlin' y 'Python'./

/Crea una función que muestre en la consola todos los elementos de la lista "lenguagesDeProgramacion./ function iterar() { lenguajesProgramacion.forEach(lenguajes =>{//con esta accion vemos el contenido de nuestra lista iterando en ella con el metodo forech console.log(lenguajes) }); return; }

/Crea una función que muestre en la consola todos los elementos de la lista "lenguagesDeProgramacion en orden inverso./ function iterarReverso1() { console.log("estamos en listaInvertida()") console.log(lenguajesProgramacion); let temp= []; for(let i=0; i <= lenguajesProgramacion.length-1 ;i ++){ temp[i]=lenguajesProgramacion[lenguajesProgramacion.length-1-i]; console.log(temp[i]) } return; console.log(temp); }

//esta es una forma de hacer que una lista tenga un resultado reversivo con el metodo reverso() function iterarReverso2(){ console.log("Estamos desde el metodo reverse()"); //creamos una varieble vector para asignarle los valores del vector en reverso let reverso = []; reverso = lenguajesProgramacion.reverse();

 return console.log(reverso);

}

//creamos una lista con distintos lenguajes de programacion que existen let lenguajesProgramacion = ['C', 'C++', 'Kotlin', 'Python']; console.log(lenguajesProgramacion);//con esta accion vemos el tamaño de nuestra lista iterar();//iteramos lenguajes de programacion

//agregamos otros lenguajes de programacion a esta lista lenguajesProgramacion.push("java","Ruby", "Golang"); console.log(lenguajesProgramacion); iterar();//iteramos lenguajes de programacion

//iteramos lenguajes de programacion y creamos una lista con los lenguajes en forma inversa iterarReverso1(); iterarReverso2();

Hola, se debe a que no guardas una copia del array original antes de hacer el .reverse(); cuando llamas a la funcion listaDeLenguajes(); ya esta guardada de la forma inversa. Hay algunos metodos que te pueden ayudar una de ellas es .slice(), que copia el array antes de invertirlo, sino tambien podrias investigar el operador de propagacion "(...);" te dejo un ejemplo con el .slice(); let lenguajesDeProgramacion = ['JavaScript', 'C', 'C++', 'Kotlin', 'Python', 'Java', 'Ruby']; let listaReves = lenguajesDeProgramacion.slice().reverse();

function listaDeLenguajes() { console.log(lenguajesDeProgramacion); }

function listaDeLenguajesReves() { console.log(listaReves); }

listaDeLenguajesReves(); listaDeLenguajes();