Ver temario

JavaScript: Operadores

Ejercicio 4


A partir del siguiente array que se proporciona: var valores = [true, 5, false, "hola", "adios", 2];

  1. Determinar cual de los dos elementos de texto es mayor
  2. Utilizando exclusivamente los dos valores booleanos del array, determinar los operadores necesarios para obtener un resultado true y otro resultado false
  3. Determinar el resultado de las cinco operaciones matemáticas realizadas con los dos elementos numéricos

Solución

1) Determinar cual de los dos elementos de texto es mayor

En éste código, se crea un array llamado "valores" con seis elementos: un valor booleano true, el número entero 5, un valor booleano false, dos cadenas de texto "hola" y "adios", y el número entero 2.

En el primer punto, se desea determinar cuál de las dos cadenas de texto es mayor. Para hacerlo, se utiliza el operador de comparación > para comparar los valores en las posiciones 3 y 4 del array (correspondientes a las cadenas "hola" y "adios", respectivamente).

En JavaScript, cuando se utiliza el operador > para comparar cadenas de texto, se compara su orden lexicográfico (o alfabético). Es decir, se comparan las letras de las cadenas secuencialmente, de izquierda a derecha, hasta que se encuentra una diferencia entre ellas. En este caso, la primera letra de "hola" es "h" y la primera letra de "adios" es "a". Como la letra "h" tiene un valor numérico mayor que la letra "a" (en términos de su posición en la tabla ASCII), el resultado de la comparación valores[3] > valores[4] será true, lo que indica que la cadena "hola" es mayor que la cadena "adios".

Por último, se utiliza la función alert() para mostrar el valor del resultado de la comparación en una ventana emergente en el navegador.

Veamos los valores de las letras de forma más detallada por si han quedado dudas.

En la tabla ASCII, cada letra y símbolo tiene un valor numérico asignado. El valor numérico de una letra en la tabla ASCII es su posición en la tabla. A continuación se muestra una tabla con los valores numéricos de las letras mayúsculas y minúsculas en la tabla ASCII:

Letra mayúscula Valor numérico en ASCII
A 65
B 66
C 67
... ...
X 88
Y 89
Z 90
Letra minúscula Valor numérico en ASCII
a 97
b 98
c 99
... ...
x 120
y 121
z 122

Por ejemplo, la letra "A" tiene un valor numérico de 65 en la tabla ASCII, mientras que la letra "a" tiene un valor numérico de 97.

En términos de programación, la cadena "hola" es simplemente una secuencia de caracteres, específicamente los caracteres 'h', 'o', 'l' y 'a', que se almacena en una variable de tipo string.

Cuando se compara la cadena "hola" con la cadena "adios", la comparación se realiza carácter por carácter, en orden ascendente según su posición en la tabla ASCII. En este caso, la primera letra de "hola" es 'h', que tiene un valor numérico de 104 en la tabla ASCII, mientras que la primera letra de "adios" es 'a', que tiene un valor numérico de 97. Como 104 es mayor que 97, la cadena "hola" es considerada "mayor" que la cadena "adios" en términos lexicográficos.

Esta es la solución que nos propone el curso

var valores = [true, 5, false, "hola", "adios", 2];
// Cual de los 2 elementos de texto es mayor
// Si el resultado es true, el primer texto es mayor
var resultado = valores[3] > valores[4];
alert(resultado);

 

Es importante tener en cuenta que aunque el resultado obtenido en este caso es correcto, la forma adecuada de comparar cadenas de texto en JavaScript es utilizando el método localeCompare(), ya que este proporciona una comparación más precisa y completa de las cadenas en función del orden alfabético.

Con la función localCompare sería así:

var comparacion = "hola".localeCompare("adios"); if (comparacion === 1) { console.log("El elemento 'hola' es mayor que el elemento 'adios'"); } else if (comparacion === -1) { console.log("El elemento 'adios' es mayor que el elemento 'hola'"); } else { console.log("Los elementos son iguales"); }

 

2) Utilizando exclusivamente los dos valores booleanos del array, determinar los operadores necesarios para obtener un resultado true y otro resultado false.

Para obtener un resultado true a partir de los valores booleanos del array, se puede utilizar el operador lógico OR (||). Este operador devuelve true si al menos uno de los operandos es true. En este caso, como el array contiene al menos un valor booleano true, el resultado de la operación utilizando el operador || será true. Por lo tanto, se podría hacer lo siguiente:

var resultadoTrue = valores[0] || valores[2];

En este caso, la variable "resultadoTrue" contendría el valor booleano true, ya que el primer valor del array (valores[0]) es true

 

3) Determinar el resultado de las cinco operaciones matemáticas realizadas con los dos elementos numéricos

Para realizar operaciones matemáticas con los elementos numéricos del array 5 y 2, se pueden utilizar los operadores aritméticos básicos (+, -, *, /) de la siguiente manera:

var suma = valores[1] + valores[5]; // 5 + 2 = 7
var resta = valores[1] - valores[5]; // 5 - 2 = 3
var multiplicacion = valores[1] * valores[5]; // 5 * 2 = 10
var division = valores[1] / valores[5]; // 5 / 2 = 2.5
var modulo = valores[1] % valores[5]; // 5 % 2 = 1