JavaScript - encontrar el elemento mayor de un arreglo

 
Vista:
Imágen de perfil de Gamaliel

encontrar el elemento mayor de un arreglo

Publicado por Gamaliel (3 intervenciones) el 18/07/2014 21:32:46
Apenas estoy aprendiendo JavaScript. Empezé con un curso de una página llamada Codecademy. Me ha agradado la interactividad que tienen los ejercicios. Llevo como 2 semanas sin poder avanzar ya que no me sale el siguiente ejercicio. Por suerte, eso no me detuvo en mi estudio, ya que encontré el curso de W3schools que también me ha ayudado, pero tengo la curiosidad de avanzar en el de Codecademy.

El ejercicio se llama Bucles y arreglos III y viene con este texto:
Los bucles y los arreglos a menudo van de la mano. Así que vamos a repasar un poco más.
Los arreglos contienen un número de elementos. Estos elementos están en un orden en particular. Los bucles se combinan bien con los arreglos porque iteran en un orden prestablecido (por ejemplo, i+2 hace que avance de dos en dos).

Estas son las instrucciones del ejercicio:

Escribe un bucle que encuentre el elemento mayor en un arreglo. Luego registra ese elemento en la consola. ¿Cómo lo hacemos?

Escribe un bucle que comience en la línea 4, y que contenga una sentencia if.
Compara el primer elemento del arreglo con la variable mayor. Si este elemento es mayor que mayor, has que mayor sea igual a este elemento.
Entonces el bucle se repetirá. En ese momento compararás el segundo elemento del arreglo con mayor. Y así sucesivamente.
Solamente cambiarás el valor de la variable si el elemento actual del arreglo es mayor que el valor de la variable.
Tu bucle for seguirá pasando por cada elemento del arreglo y tu variable terminará con el valor mayor en el arreglo.

Este es el código que ya viene en el ejercicio, y que yo tengo que modificar:
1
2
3
4
5
6
7
8
9
var arreglo = [3 , 6, 2, 56, 32, 5, 89, 32];
var mayor = 0;
 
 
 
 
 
 
console.log(mayor);



Este es el código que he escrito yo, que no me lo acepta, porque dice que imprime 0, en vez de 89.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var arreglo = [3 , 6, 2, 56, 32, 5, 89, 32];
var mayor = 0;
 
for(i = 0; i < arreglo.lenght; i++){
    if (arreglo[i] > mayor)
    {
        mayor = arreglo[i];
    };
}
 
 
 
 
console.log(mayor);

La verdad me sorprende este ejercicio, ya que hay una función que permite automáticamente sacar el valor mayor de un arreglo. Además de que no entendí mucho la lógica de cómo esas instrucciones me permitirían que se imprima en la consola el elemento más grande. Si alguien pudiera sugerirme una solución a este ejercicio se lo agradecería.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

encontrar el elemento mayor de un arreglo

Publicado por xve (2100 intervenciones) el 19/07/2014 08:59:14
Hola Gamaliel, no es lenght, sino que es length... si te fijas, no te entra en el for()...

1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
var arreglo = [3 , 6, 2, 56, 32, 5, 89, 32];
var mayor = 0;
 
for(i = 0; i < arreglo.length; i++){
    if (arreglo[i] > mayor)
    {
        mayor = arreglo[i];
    }
}
 
console.log(mayor);
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gamaliel

encontrar el elemento mayor de un arreglo

Publicado por Gamaliel (3 intervenciones) el 20/07/2014 08:53:18
Gracias. Ya me funcionó el código y puedo avanzar de ejercicio. Me estoy fijando que ya van varios ejercicios que me quedo trabado por un simple carácter xD. Pero eso me ayudará a fijarme más en el futuro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha disminuido su posición en 16 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Buscar un elemento de un array

Publicado por Alejandro (2 intervenciones) el 28/05/2020 00:08:49
Disculpen me pueden ayudar con mi programa es el siguiente

Elabora un código Javascript que pida nuevamente al usuario un texto (en mayúsculas) y
lo codifique utilizando números de acuerdo a los siguientes criterios de letras:
O=0, I=1, Z=2, E=3, A=4, S=5, G=6, B=8. Imagina que el usuario introdujo el texto:
PINOS ZACATECAS codificado quedaría P1N05 24C4T3C45.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

encontrar el elemento mayor de un arreglo

Publicado por milfer muñoz (1 intervención) el 26/06/2020 05:25:01
Buen dia srs me sirvio el ejemplo ya que era algo similar pero me sirvio para poder resolver mi homework
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 59
Ha aumentado su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

encontrar el elemento mayor de un arreglo

Publicado por luis (22 intervenciones) el 28/05/2020 03:23:07
Hola. Me sorprende el término "arreglo" para denominar a una matriz (array). Pero en fin, si la cosa va de un conjunto de elementos eso se llama Array (matriz en inglés).

Entiendo que se trata de una matriz formada sólo por elementos numéricos.

Una matriz hay varias formas de declararla. Yo prefiero el modo tradicional NombreMatriz=new Array(a,b,c....)

Para localizar el elemento mayor de una matriz nada tan fácil como ordenarla con sort() e indicar al programa que imprima el último elemento según índice.

Pero si lo quieres complicar con un buble, pues nada, declaras una variable a la que llamarás "máximo" y mediante un condicional irás sumándole elementos. Cuando ya el "máximo" no aumente de valor pues el programa de mostrará el elemento mayor.

¡¡¡Importante!!! El lenguaje javascript tiene un pequeño defecto y es que toma como referencia siempre el primer elemento de un cadena, que dicho en cristiano si le dices que ordene de menor a mayor los números 10, 12 y 5 te lo hará del siguiente modo 12, 10, 5 porque entiende que los dos primeros al empezar por "1" son menores que "5".

Para salvar este problema emplearemos una mini-función comparativa que es ya un clásico entre los programadores de javascript:

1
function comparar(a,b){return a-b;}

De esta forma si lo agregamos al método sort() en la forma NombreMatriz.sort(comparar) nos ordenará la serie correctamente.


Empezamos con la primera parte. Localizamos el elemento mayor de una matriz, y lo imprimimos con un elemento identificador al abrir la página.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<html>
 
<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head>
<script language=javascript>
 
function comparar(a,b){return a-b;}
 
function localizarmayor(){
matriz=new Array(3 , 6, 2, 56, 32, 5, 89, 32)
 
//ordenamos los números de menor a mayor. La matriz tiene ocho elementos, indexados del 0 al 7.
matriz1=matriz.sort(comparar)
 
//se entiende que el número mayor es matriz1[7]. Lo imprimimos en pantalla con el identificador "mayor" acompañado de la propiedad "innerHTML".
 
mayor.innerHTML=matriz1[7]
 
}
 
</script>
 
<body onload='localizarmayor()'>
 
<p><b id=mayor></b></p>
 
</body>
 
</html>

Pero si no quieres ordenar y deseas hacerlo mediante un bucle lo haremos con las sentencia for(i=0;i<8;i++), de manera que vaya comparando los elementos desde 0 hasta el 7.

Declaramos la variable max a la cual le asignamos el valor inicial max=0;

Una condicional hará que si el elemento indexado matriz[i] es mayor que "max", la variable "max" adoptará el valor del elemento del índice. La modificación de su valor se agotará en el momento que ya no exista un valor mayor.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<html>
 
<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head>
<script language=javascript>
 
 
max=0;
function localizarmayor(){
 
matriz=new Array(3 , 6, 2, 56, 32, 5, 89, 32)
 
for(i=0;i<8;i++)
if(matriz[i]>max){max=matriz[i]}
 
mayor.innerHTML=max
 
}
 
</script>
 
<body onload='localizarmayor()'>
 
<p><b id=mayor></b></p>
 
</body>
 
</html>

He utilizado tu array. Si deseas cambiar los números el resultado será el mismo. Pero si aumentas el número de elementos también deberás aumentar el bucle. Por ejemplo imagina que tu array consta de 100 elementos, pues entonces el bucle debería ser:

1
2
for(i=0;i<100;i++)
if(matriz[i]>max){max=matriz[i]}


Y tal como apuntabas en tu comentario todo lo que te he explicado anteriormente es simple literatura de programación, pues para hallar el máximo y el mínimo de una array puedes emplear las funciones Math.max() y Math.min() respectivamente.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<html>
 
<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head>
<script language=javascript>
 
function localizarmayor(){
 
mayor.innerHTML=Math.max(3 , 6, 2, 56, 32, 5, 89, 32)
 
}
 
</script>
 
<body onload='localizarmayor()'>
 
<p><b id=mayor></b></p>
 
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha disminuido su posición en 16 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Como codificar

Publicado por Alejandro (2 intervenciones) el 28/05/2020 19:54:50
Ok, mi codigo es el siguiente el problema es a la hora de codificar creo yo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<head>
    <title>Codificacion de texto</title>
</head>
 
<body>
    <script>
 
        var palabra;
        palabra = prompt("Escribe un texto en MAYUSCULAS:  ").toUpperCase();
        var codi = [O = 0, I = 1, Z = 2, E = 3, A = 4, S = 5, G = 6, B = 8];
        for (i = 0; i < palabra.length; i++) {
            if (palabra == codi) {
                document.write(codi[i]);
            } else {
                document.write(palabra[i]);
            }
        }
    </script>
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar