Autor Tema: JavaScript ordenar palabras por orden alfabético o números push, sort CU01153E  (Leído 15225 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas noches. A continuación cuelgo las posibles soluciones de los ejercicios de la entrega CU01153E del curso JavaScript desde cero.


Citar
EJERCICIO 1

Crea un script donde a partir del array [33, 2, 36, 55, 4, 1] se realicen los siguientes procesos:

a) Mostrar el array ordenado de menor a mayor y de mayor a menor usando la función sort y definiendo la función de ordenación de forma anónima, es decir, deberás invocar X.sort(function (…) { … } ) definiendo la función de forma anónima en vez de cómo función con nombre.

b) Crea una variable de nombre deMenorAMayor que contenga el resultado de ordenar de menor a mayor los elementos del array.

c) Crea una variable de nombre deMayorAMenor que contenga el resultado de ordenar de mayor a menor los elementos del array.

d) Muestra por pantalla el array original, la variable deMenorAMayor y la variable deMayorAMenor.


El código:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">
function ejemplo() {
var miArrayOriginal = [33,2,36,55,4,1];
var deMenorAMayor = [33,2,36,55,4,1];
var deMayorAMenor = [33,2,36,55,4,1];
deMenorAMayor = deMenorAMayor.sort(function(elem1,elem2){return elem1-elem2});
deMayorAMenor = deMayorAMenor.sort(function(elem1,elem2){return elem2-elem1});
var msg = 'El array original es: ' + miArrayOriginal + '\n';
msg = msg + 'Ordenar de mayor a menor es: ' + deMenorAMayor + '\n';
msg = msg + 'Ordenar de menor a mayor es: ' + deMayorAMenor + '\n';
alert(msg);
}
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color: blue; text-align: center; cursor: pointer;" id="pulsador" onclick="ejemplo()">Probar Ejercicio</div>
</body>
</html>


Citar
EJERCICIO 2

Crea un script donde sea posible ordenar palabras por orden alfabético sin tener en cuenta la existencia de mayúsculas o minúsculas. Por ejemplo, declarar var miArray=['Moto', 'soto', 'Abaco', 'abeja', 'Sapo', 'nieve', 'Zumba, 'barco'] y tras ordenar obtener =[ 'Abaco', 'abeja', 'barco', 'Moto', 'nieve', 'Sapo', 'soto', 'Zumba].


Y el código:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">
function ejemplo() {
var miArray=['Moto', 'soto', 'Abaco', 'abeja', 'Sapo', 'nieve', 'Zumba', 'barco'];
alert(miArray.sort(function(a, b){return a.toLowerCase().localeCompare(b.toLowerCase());}));
}

</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color: blue; text-align: center; cursor: pointer;" id="pulsador" onclick="ejemplo()">Probar Ejercicio</div>
</body>
</html>


PD: Para la solución del segundo código me he guiado por la solución del "pedro,,". He buscado un montón de soluciones alternativas, pero la suya ha sido la mejor. Os dejo el enlace de su foro:

https://www.aprenderaprogramar.com/foros/index.php?topic=3422.msg14957#msg14957

En el ejercicio 1 tenía las mismas dudas que "pedro,,", pero después de leer los comentarios en su foro ya se desvanecieron.

Gracias.
« Última modificación: 24 de Febrero 2016, 09:21 por Mario R. Rancel »

bermartinv

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 298
    • Ver Perfil
Re:CU01153E JavaScript push, sort
« Respuesta #1 en: 20 de Febrero 2016, 23:29 »
Funcionan OK

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Re:CU01153E JavaScript push, sort
« Respuesta #2 en: 21 de Febrero 2016, 00:23 »
Solo un detalle, en el primer ejercicio cuando se muestra por pantalla 'Ordenar de mayor a menor es:', el array sale ordenado de menor a mayor y en el siguiente al revés.

Saludos.

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU01153E JavaScript push, sort
« Respuesta #3 en: 21 de Febrero 2016, 17:58 »
Ai, es verdad, que tonto que soy. Tienes razón Pedro. Tengo que cambiar el texto.

Por cierto, ya lo dije al colgar el ejercicio, pero para el segundo código el mérito es de "pedro,," y no mío. Lo que he hecho es copiarle el código  :-[

Reinier Garcia

  • Sin experiencia
  • *
  • Mensajes: 9
  • Y el último que apague el Morro!
    • Ver Perfil
    • Perfil en LinkedIn

Ejercicio # 1: Más sencillo y limpio el código.
Código: [Seleccionar]
function cap53_ejercicioFinal1() {

    var miArrayOriginal = [33, 2, 36, 55, 4, 1];
    var copiaArrayOriginal = miArrayOriginal;

    var MenorAMayor = copiaArrayOriginal.sort(function (elem1, elem2) {return elem1 - elem2;}).join(', ');
    var MayorAMenor = copiaArrayOriginal.reverse().join(', ');

    var msg = 'El array original es: [' + miArrayOriginal.join(', ') + ']\n';
    msg += 'Ordenado de mayor a menor es: [' + MayorAMenor + ']\n';
    msg += 'Ordenado de menor a mayor es: [' + MenorAMayor + ']\n';

    alert(msg);

}
« Última modificación: 10 de Octubre 2016, 05:14 por Reinier Garcia »

Reinier Garcia

  • Sin experiencia
  • *
  • Mensajes: 9
  • Y el último que apague el Morro!
    • Ver Perfil
    • Perfil en LinkedIn
Ejercicio # 2: Otra variante. Haciendo uso tan solo de lo aprendido hasta el momento en este sitio web.

Código: [Seleccionar]
function cap53_ejercicioFinal2() {

    var miArrayOriginal = ['Moto', 'soto', 'Abaco', 'abeja', 'Sapo', 'nieve', 'Zumba', 'barco'];
    var copiaArrayOriginal = miArrayOriginal;
    var ordenAlfabetico = copiaArrayOriginal.sort(ordenarAlfabeticamenteNoCaseSensitive).join(', ');

    var msg = 'El array original es: [' + miArrayOriginal.join(', ') + ']\n';
    msg += 'Ordenado alfabéticamente es: [' + ordenAlfabetico + ']\n';

    alert(msg);

}


function ordenarAlfabeticamenteNoCaseSensitive(item1, item2) {

    return ( item1.toLowerCase() < item2.toLowerCase()? - 1: (item1.toLowerCase() > item2.toLowerCase()? 1: 0) );

}

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola Reinier Garcia.

Lo primero recomendarte que leas el siguiente apartado para escribir correctamente en el foro.

https://www.aprenderaprogramar.com/foros/index.php?topic=1460.msg7784#msg7784

Intenta crear nuevos temas con tus soluciones y escribir en temas antiguos y pedirte también que intente colocar tu código javaScript en un documento html para facilitar la corrección y ejecución del mismo.

Sobre tu ejercicio decirte que hace lo que pide el enunciado.

Saludos.  ;D

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".