No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Programando un algoritmo con Javascript

7/17
Recursos

Aprender谩s paso a paso a crear un algoritmo b谩sico utilizando Javascript. Este algoritmo recorrer谩 una lista de n煤meros y determinar谩 cu谩l de ellos es el mayor.

驴Qu茅 algoritmo se va a crear?

El prop贸sito de este algoritmo es recorrer un array (una lista de n煤meros) y determinar el n煤mero mayor dentro de esta lista. Para esto, se crear谩n tres variables: una para el array, otra para guardar el n煤mero m谩s grande de la lista, y la 煤ltima para conservar el n煤mero de elementos en el array.

let numeros = [5, 10, 15, 60, 8]; let numeroMaximo = 0; let tamano = numeros.length;

驴C贸mo funciona un array en Javascript?

Un array en Javascript se define dentro de corchetes [ ] y puede contener datos de cualquier tipo: strings, n煤meros, objetos, e incluso otros arrays. Los arrays son 煤tiles porque permiten almacenar gran cantidad de informaci贸n en un solo lugar.

let numeros = [5, 10, 15, 60, 8];

驴C贸mo se crear谩 el ciclo for?

El ciclo for recorrer谩 cada posici贸n del array y comparar谩 el valor en esa posici贸n con el valor guardado en la variable n煤mero m谩ximo. Si el valor en la posici贸n es mayor, se convertir谩 en el nuevo n煤mero m谩ximo.

for(let i =0; i<tamano; i++){ if(numeroMaximo < numeros[i]){ numeroMaximo = numeros[i]; } }

驴C贸mo se muestra el resultado?

Se usa console.log() para indicar al c贸digo que muestre el n煤mero m谩ximo en la consola.

console.log(numeroMaximo);

驴C贸mo se puede crear el algoritmo utilizando Math.max?

El objeto Math contiene constantes y funciones matem谩ticas comunes. En este caso, se utiliza Math.max() para determinar el n煤mero m谩ximo dentro de un listado directamente.

let maximo = Math.max(5, 10, 60, 8); console.log(maximo);

Finalmente, te recomendamos revisar la documentaci贸n oficial de JavaScript para conocer m谩s acerca de los conceptos presentados en esta gu铆a.

Contribuci贸n del curso creada por: Silfredo Ibarra

Aportes 344

Preguntas 86

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Los lenguajes de programaci贸n suelen tener 2 formas:

.

  • IMPERATIVO: indicamos una secuencia de operaciones a realizar.

  • DECLARATIVO: especificamos el resultado deseado, no c贸mo lograrlo.

.
Cuando usamos el ciclo for para obtener el resultado, estamos usando programaci贸n imperativa y cuando aplicamos Math.max estamos siendo declarativos.

Me siento un poco frustrado en esta clase, siento que venia bien, sin embargo, para este ejercicio, se necesitan algunos conceptos que nunca antes se habian explicado. Siento que este ejercicio es un cambio de dificultad muy abrupto respecto a la clase anterior. Esta lleno de conceptos completamente nuevos como si ya se hubieran explicado.

Var, let y const

Las declaraciones var tienen un 谩mbito global o un 谩mbito funci贸n/local, mientras que let y const tienen un 谩mbito de bloque.
Las variables var pueden ser modificadas y re-declaradas dentro de su 谩mbito; las variables let pueden ser modificadas, pero no re-declaradas; las variables const no pueden ser modificadas ni re-declaradas.
Todas ellas se elevan a la parte superior de su 谩mbito. Pero mientras que las variables var se inicializan con undefined, let y const no se inicializan.
Mientras que var y let pueden ser declaradas sin ser inicializadas, const debe ser inicializada durante la declaraci贸n.

Info completa: https://www.freecodecamp.org/espanol/news/var-let-y-const-cual-es-la-diferencia/

En el curso anterior pase por la misma situaci贸n, es recomendable que dejen un documento en PDF al menos para estos cursos que son de inicio, pues esta muy cargado de conceptos y seria bueno leerlos antes de entrar en estas clases o que se encuentren con accesos para quien quiera los lea.

Realice alguna anotaciones por si se quieren guiar

Entend铆 todo el video y como resuelve el reto 9. Entiendo que lo importante del reto 9 es forzar la b煤squeda de informaci贸n de nuestra parte para estimular la retenci贸n de la misma aunque nos equivoquemos. PERO creo que tambi茅n es importante destacar que por ser un curso b谩sico/inicial es mas que claro que la gran mayor铆a solo va a sentir frustraci贸n (yo tambi茅n) porque uno espera poder resolver los problemas con la informaci贸n que va recibiendo hasta el momento y por como resuelve el ejercicio la profesora esta claro que no es posible solo con lo que vimos hasta ahora en la ruta. No quisiera recurrir al argumento de 鈥渆stoy pagando por algo que no me dan鈥 pero es inevitable pensarlo cuando una parte del tiempo invertido en el aprendizaje se destina fuera de la plataforma que pagamos. Mi pedido a quien pueda hacer algo del equipo de platzi es que estos cursos b谩sicos/iniciales sean lo mas detallistas posibles dentro de los elementos generales que deban exponer, si se ense帽a a sumar y restar, que los ejercicios sean de sumar y restar; y si alguien quiere ampliar sus conocimientos podr谩 buscar informaci贸n sobre multiplicaci贸n y divisi贸n o encontrar tales recursos y ejercitaciones en cursos mas avanzados (a modo de ejemplo). ++Que la b煤squeda de informaci贸n sea para interiorizar o ampliar los conocimientos y no un recurso para aprender y entender lo que el curso deber铆a dejar claro. ++

  • Okey pero entonces se hubiera resolvido mucho mas r谩pido de esta forma no?

let maximo = Math.max(5,10,15,60,8)
console.log("el numero mas alto es " + maximo)

El scope se define como el alcance que una variable tendr谩 en tu c贸digo, este decide a que variables tienes acceso en cada parte del c贸digo. Existen 2 tipos de scope, el local y el global

El scope local puedes acceder a una variable en cierta parte del c贸digo, se conoce como variable local, un ejemplo es cuando una variable esta declarada dentro de un bloque o funci贸n, si tratas de acceder a esta variable fuera de esta funci贸n o bloque, habr谩 un error que dira que no est谩 permitida
El scope global cuando esta declarada fuera de una funci贸n o de un bloque

Cuando declaramos una variable let o const dentro de un bloque, el alcance o scope que tendr谩 ser谩 s贸lo dentro de ese bloque. Adem谩s, si existe una colisi贸n de nombres entre dos variables let o const recibiremos un mensaje de error. Esto hace que seamos menos susceptibles a cometer errores al utilizarlas, es por esto que desde que sali贸 ES6 es m谩s recomendable utilizar let o const a la hora de declarar una variable en lugar de usar var.

CICLO FOR, PARA OBTENER NUMERO MAXIMO

//ENCONTRAR UN NUMERO MAYOR EN UNA ARRAYS

//VARIABLES
let NUMEROS = [5, 10, 15, 60, 8]
let NUMEROMAXIMO = 0
let TAMANO = NUMEROS.length


//INSTRUCCION
for(let I=0; I<TAMANO; I++) {
  if(NUMEROMAXIMO < NUMEROS[I]){
    NUMEROMAXIMO = NUMEROS[I]
  }
}

//MOSTRAR
console.log(NUMEROMAXIMO)

//VARIANTE
let MAXIMO = Math.max(5, 10, 15, 60, 8)
console.log(MAXIMO)

Creo que el c贸digo tiene un error ya que si los nueros del array fuesen todos negativos el resultado no ser铆a el valor m谩ximo del array sino el valor 0 que es con lo que inicializamos nuestro valor dejo mi soluci贸n a este inconveniente

let numeros = [5, 10, 15, 60, 8]
let numeroMaximo = numeros[0]

for(let i=0; i < numeros.length; i++) {
  if(numeroMaximo < numeros[i]) {
    numeroMaximo = numeros[i]
  }
}

console.log(numeroMaximo)

Var = variable se puede modificar y re declarar
Let = solo se declaran una vez, pero pueden ser modificadas
Const = no se pueden modificar son constantes

al decir modificadas se refiere al valor que almacenan.

Fue horrible jajajajajaja, no se ejecutaba correctamente y no sabia cu谩l era el error, sabia que deb铆a copiar todo al pie de la letra, aunque no sabia al principio lo que significaba cada cosa.

fui recorriendo todo poco a poco y logre entender el porque de los valores y lo que est谩bamos escribiendo, al final fue que escrib铆 lenght y era length

en la ecuaci贸n me daba 0
despu茅s de media hora lo pude encontrar repasando todo
a pesar de todo me siento genial
logre entender la clase despu茅s de analizar todo
y lo mejor encontr茅 mi error

Del codigo mostrado en el video tome el atrevimiento de hacer las siguientes mejoras:

  • se asigna el valor del primer elemento al maximoArray para ahorrarme una interaci贸n.
  • no se inicia el valor en cero, para darle posibilidades a arrays con valores negativos.
  • se inicia el ciclo en i=1 ya que no es necesario comparar un numero consigo mismo.
//Algoritmo busqueda maximo dentro de un .array sin usar funciones adicionales

let arrayNumeros = [1, 2, -9, 50, 0, 8];
let maximoArray = arrayNumeros[0];

for (let i = 1; i < arrayNumeros.length; i++){
  if(arrayNumeros[i]>maximoArray){
    maximoArray = arrayNumeros[i];
  }
}

console.log(maximoArray);

Este es mi soluci贸n

//bigger number of the array
let numbers = [5,4,99,8,10,60,8];
console.log(numbers);
let maxNumber = 0;
for (let number of numbers) {
  if (number > maxNumber){
    maxNumber = number;
  }
}
console.log("The bigger number is " + maxNumber);

recuerden: no nombrar variables con n煤meros o caracteres extra帽os como la 脩, tildes o comas.
y nunca paren de aprender 馃挌

Mi calculadora

function suma(a, b){
    return a + b;
}
function resta(a, b){
    return a-b;
}
function multiplicacion(a, b){
    return a * b;
}
function division(a, b){
    return a / b;
}

console.log(`Suma: ${suma(2,3)}`);
console.log(`Resta: ${resta(3,2)}`);
console.log(`Multiplicacion: ${multiplicacion(2,3)}`);
console.log(`Division: ${division(3,2)}`);

Es tan dificil y frustrante que esto sea para principiantes y utilicen informaci贸n sin haberla explicado antes, ni no necesitara que me guien simplemente ver铆a videos en Youtube, los ultimos videos son asi.

Bastante mal las lecciones de JavaScript de este curso, la lecci贸n 5 dice: Primeros pasos, pero 驴cu谩les?, si ya est谩 usando funciones, condicionales, variables iteradoras los cuales son temas m谩s avanzados que no se han explicado, y no hubo explicaci贸n de la sintaxis del lenguaje, no tengo ni idea del porque usa let, o ;

let numeros = [5, 10, 15, 60, 8];
let numeroMaximo = 0;
let tamano = numeros.length
 
for(let i=0; i<tamano; i++){
    if(numeroMaximo < numeros[i]) {
        numeroMaximo = numeros[i]
    }
}
 
//Explicacion del ciclo 鈥渇or鈥    
Array numeros = [5, 10, 15, 60, 8];
if(numeroMaximo=0 < numeros[i]=5
Es decir si 0 es menor a 5 
 
numeroMaximo = numeros[5]
Es decir numeroMaximo = 5
 
Se repite el proceso pero ahora NumeroMaximo inicia en 5
if(numeroMaximo=5 < numeros[i]=10
Es decir si 5 es menor a 10
 
numeroMaximo = numeros[10]
Es decir numeroMaximo = 10
 
if(numeroMaximo=10 < numeros[i]=15
Es decir si 10 es menor a 15
 
numeroMaximo = numeros[15]
Es decir numeroMaximo = 15
 
if(numeroMaximo=15 < numeros[i]=60
Es decir si 15 es menor a 60
 
numeroMaximo = numeros[60]
Es decir numeroMaximo = 60
 
if(numeroMaximo=60 < numeros[i]=8
En este caso la condicion no se cumple ya que 60 no es menor que 8
Por lo cual numeroMaximo sigue siendo 60, y ya se completaron el total de 
Interacciones que eran 5
 
numeroMaximo = numeros[60]
Es decir numeroMaximo = 60
 
 
console.log(numeroMaximo)

La prof no sabe explicar esta parte, la noto tensa, lo cual no la hace explicar con claridad, PLATZI, deberia mejorar eso.

la verdad es un problema que estos cursos no tengan material de apoyo para reforzar las clases, es muy f谩cil decir investiga esto o aquello, a veces se aprende m谩s leyendo estos comentarios que viendo clase

vaya la funcion math resumio muy rapito todo esto, esta claro que leer la docuemntaci贸n es fundamental

A mi me gusta el libro Javascript for Kids, lo le铆 hace a帽os y debe estar desactualizado, pero me ayud贸 a entender ciertas cosas. Ando repasando porque ya me olvid茅

ok, pero est谩 preguntando si la variable m谩xima es MENOR que numero(i)

La verdad no se si mis conocimentos son muy limitados a este nivel (Estoy comenzando desde 0) Pero se me hizo muy dificil entender la primera explicacion, solo en la segunda pude entender poco y ya porque habia visto algo en el curso de programacion basica de Platzi. Es muy frustrante.

Hola compa帽eros/as: para los que como yo no entienden esta clase me tom茅 el trabajo de explicar a detalle lo m谩s que pude una vez que lo entend铆, espero que les sirva y preg煤ntenme lo que quieran, pero no se queden por no entender esto. ![](https://static.platzi.com/media/user_upload/image-2da38875-5a8d-47fe-9eaa-f3268898e8b5.jpg) ![](https://static.platzi.com/media/user_upload/image-99f19fd1-adc1-4886-bfb1-f5e664f9e109.jpg)
Una explicaci贸n mas para principiante: let numeros = \[5, 10, 15, 60, 8];: Aqu铆 se crea una lista de n煤meros llamada numeros. Esta lista contiene cinco n煤meros: 5, 10, 15, 60 y 8. let numeroMaximo = 0;: Se crea una variable llamada numeroMaximo y se le asigna el valor inicial de 0. Esta variable se utilizar谩 para mantener un registro del n煤mero m谩s grande encontrado. let tamano = numeros.length;: Se crea otra variable llamada tamano que almacena la longitud (cantidad de elementos) de la lista numeros. En este caso, tamano ser谩 igual a 5, ya que hay 5 n煤meros en la lista. Luego, el c贸digo entra en un bucle for: for(let i = 0; i < tamano; i++): Este bucle se repetir谩 desde i = 0 (el primer elemento de la lista) hasta que i sea menor que tamano (en este caso, 5). if (numeroMaximo < numeros\[i]): En cada iteraci贸n del bucle, se compara el valor actual de numeroMaximo (inicialmente 0) con el n煤mero en la posici贸n i de la lista numeros. Si el n煤mero actual en numeros\[i] es mayor que el valor actual de numeroMaximo, se ejecuta el siguiente bloque de c贸digo. numeroMaximo = numeros\[i];: Si el n煤mero en la posici贸n i de la lista numeros es mayor que el valor actual de numeroMaximo, se actualiza el valor de numeroMaximo con el nuevo n煤mero. Esto significa que numeroMaximo ahora contiene el n煤mero m谩s grande encontrado hasta el momento. Despu茅s de que el bucle haya recorrido todos los n煤meros en la lista, numeroMaximo contendr谩 el n煤mero m谩s grande en la lista. Finalmente, se imprime el valor de numeroMaximo en la consola con console.log(numeroMaximo);.

let te permite declarar variables limitando su alcance al bloque, declaraci贸n, o expresi贸n donde se est谩 usando.

Tengo este explicado pasito a pasito, espero que les sirva.

Primero, definimos un array de n煤meros: En este caso, el array tiene cinco elementos: 10, 5, 25, 30 y 15. La palabra clave 鈥渃onst鈥 se utiliza en JavaScript para declarar una variable cuyo valor no puede ser reasignado. Es decir, es una constante.

const array = [10, 5, 25, 30, 15];

Luego, creamos una variable llamada max y la inicializamos con el primer valor del array:
Esta l铆nea de c贸digo establece que la variable max inicialmente tiene el valor del primer elemento del array, que es 10 驴Recuerdan que en clases anteriores la profe nos dijo que las pocisiones de los array inician en 0? pues es eso 馃槂

let max = array[0];

A continuaci贸n, usamos un bucle for para iterar sobre el resto de los valores del array:

for (let i = 1; i < array.length; i++) {
  // c贸digo que se ejecuta en cada iteraci贸n
}

Voy a explicar cada elemento de esta estructura for 鈥 Entonces: estamos declarando una variable llamada i y asign谩ndole un valor inicial de 1 . La variable i se utiliza para llevar un registro de la posici贸n actual dentro del array que estamos iterando.
Aclaraci贸n: la variable i se inicializa en 1 en lugar de 0 porque se asume que el elemento en la posici贸n 0 del array ya est谩 almacenado en la variable max.
Por lo tanto, para evitar comparar el valor de la posici贸n 0 del array dos veces (una vez en la inicializaci贸n de la variable max y otra vez en el ciclo for), se comienza la iteraci贸n del ciclo for desde el segundo elemento del array (posici贸n 1) hasta el final del array.
Si la variable max no se ha inicializado previamente o si se desea que la comparaci贸n incluya el elemento en la posici贸n 0 del array, entonces la variable i deber铆a ser inicializada en 0 en lugar de 1.

let i = 1;

tenemos una condici贸n que se eval煤a al comienzo de cada iteraci贸n del ciclo 鈥淢ientras i sea menor a la longitud del array鈥

i < array.length;

Despu茅s de esto se ejecutar谩 el c贸digo que est谩 dentro de las llaves (Que lo pondr茅 m谩s adelante, voy paso a paso)
Una vez este c贸digo se ejecute. La siguiente expresi贸n incrementa el valor de i en 1, lo que significa que el ciclo pasar谩 a la siguiente posici贸n del array en la siguiente iteraci贸n.

i++;

Esto es lo que ir谩 dentro de las llaves, en el bucle comparamos cada valor con el valor actual de max y, si es mayor, actualizamos max con ese valor

if (array[i] > max) {
  max = array[i];
}

Finalmente, cuando el bucle ha terminado de iterar sobre todos los valores del array, la variable max contendr谩 el n煤mero mayor:

console.log(max); // output: 30

El codigo completo se ve as铆

const array = [10, 5, 25, 30, 15];
let max = array[0];

for (let i = 1; i < array.length; i++) {
  if (array[i] > max) {
    max = array[i];
  }
}

console.log(max); // output: 30

muchachos les aclaro yo de programaci贸n se poco o nada. Esto lo logr茅 con ayuda de internet. Yo se que la frustraci贸n a veces gana. como en este caso, que la profe habl贸 de muchas cosas que no sabiamos, pero internet es una herramienta poderos铆sima 馃槂

Por ac谩 hice el ejercicio y lo sub铆 en GitHub, esta super sencillo pero cumple con los requerimientos b谩sicos.

Link de GitHub con proyecto:

Link de p谩gina que toma los valores que ingrese el usuario y hace la validaci贸n

La diferencia de 鈥渓et鈥 y 鈥渧ar鈥 es que 鈥渓et鈥 permite tener un scope m谩s limitado. A diferencia de la 鈥渧ar鈥 que es una variable global.

Veo varias personas comentando que no entienden el flujo de la clase, como recomendaci贸n o dir铆a mas bien que como requisito ver los cursos anteriores de pre-requisitos de pensamiento l贸gico antes de iniciar con el de Lenguajes de programaci贸n. Estos cursos les dar谩n las bases para continuar en estructura, condicionales, diagramas de flujo, tablas de verdad, etc. Recuerden que la frustraci贸n es el peor enemigo para la carrera de un programador, quien debe estar constantemente buscando soluci贸n a problemas. 脕nimo que si se puede!
En JavaScript, `var`, `let`, y `const` son utilizados para declarar variables, pero difieren en su alcance y capacidad de reasignaci贸n. 1. var: Tiene un alcance de funci贸n y no respeta el bloque. Esto significa que una variable declarada con `var` estar谩 disponible en toda la funci贸n en la que se declara. Ejemplo: function example() { if (true) { var x = 10; console.log(x); // Salida: 10 } console.log(x); // Salida: 10 } 2. let: Tiene un alcance de bloque, lo que significa que la variable solo est谩 disponible dentro del bloque donde se declara. Ejemplo: function example() { if (true) { let y = 20; console.log(y); // Salida: 20 } //console.log(y); // Error: "y" no est谩 definido aqu铆 } 3. const: Tiene un alcance de bloque, pero a diferencia de `let`, no se puede reasignar. Es usado para declarar constantes. Ejemplo: function example() { const z = 30; //z = 40; // Error: no se puede reasignar una constante console.log(z); // Salida: 30 } En resumen, usa `var` si necesitas una variable con alcance de funci贸n, `let` si necesitas una variable con alcance de bloque y la posibilidad de reasignaci贸n, y `const` si necesitas una variable con alcance de bloque y sin la posibilidad de reasignaci贸n. Fuente: Consulta ChatGPT " Que es en Java Script Var, Let y Const. Ejemplos"
usa let no explica por que usa let algo nunca mencionado antes por que no lo explica? para que estoy pagando? estaba tan emocionado por aprender programacion, y estas clases me tienen lleno de rabia (solo del hecho de tener que ir a fuentes externas, ya que para eso pague esto, para tener mi material y contenido AQUI)

Sinceramente me parece que faltan al menos un par de clases intermedias para entrar a un ejemplo como este, considero que hay poca conexi贸n entre el ejemplo de las sumas y restas (bien lejos de una calculadora por cierto鈥) y el buscar el n煤mero m谩s grande de un array. Por otro lado, que estudiantes m谩s avanzados vengan a postear sus c贸digos m谩s complejos, aumenta el grado de frustraci贸n鈥

Ciertamente, comprendo el valor de investigar y leer de distintas fuentes en cualquier 谩rea de estudio, sin embargo, en esta etapa tan b谩sica b谩sica鈥 deber铆amos de ir de la mano de la profesora, al menos hasta obtener las bases m铆nimas suficientes para dejar de gatear y comenzar a caminar, por algo nos inscribimos en un curso formal y no estamos leyendo material random de la red o buscando videos varios de YouTube.

Dicho todo lo anterior, despu茅s de leer y releer todo lo que pude, intentar茅 explicar el c贸digo de la clase con lo que entend铆 (est谩 comentado en exceso, pero creo que ayuda). Espero esto sea 煤til para quienes est茅n tan perdidos como yo.

C贸digo:

let numeros = [5, 10, 15, 100, 8]; // define el array de n煤meros
let numeroMaximo = 0; // establece el valor inicial del n煤mero m谩ximo en 0
let tama帽o = numeros.length; // establece la longitud del array en la variable tama帽o
// bucle que itera sobre cada n煤mero en el array
for (let i = 0; i < tama帽o; i++) { //i++ es un operador de incremento que significa "aumentar el valor de i en 1 en cada iteraci贸n del bucle for". En otras palabras, i++ es una abreviatura de i = i + 1
  if (numeroMaximo < numeros[i]) { // compara el n煤mero actual con el n煤mero m谩ximo
    numeroMaximo = numeros[i]; // si el n煤mero actual es mayor que el n煤mero m谩ximo, actualiza el n煤mero m谩ximo
  }
}

console.log(numeroMaximo); // imprime el n煤mero m谩ximo

Explicaci贸n:

  1. Primero, el c贸digo define el array de n煤meros como [5, 10, 15, 100, 8].

  2. Luego, establece el valor inicial del n煤mero m谩ximo en 0 y la longitud del array en la variable tama帽o.

  3. El bucle for comienza su iteraci贸n en el 铆ndice 0 del array.

  4. En la primera iteraci贸n, el n煤mero 5 se compara con 0 (el valor actual de numeroMaximo). Como 5 es mayor que 0, se actualiza el valor de numeroMaximo a 5.

  5. En la segunda iteraci贸n, el n煤mero 10 se compara con 5 (el valor actual de numeroMaximo). Como 10 es mayor que 5, se actualiza el valor de numeroMaximo a 10.

  6. En la tercera iteraci贸n, el n煤mero 15 se compara con 10 (el valor actual de numeroMaximo). Como 15 es mayor que 10, se actualiza el valor de numeroMaximo a 15.

  7. En la cuarta iteraci贸n, el n煤mero 100 se compara con 15 (el valor actual de numeroMaximo). Como 100 es mayor que 15, se actualiza el valor de numeroMaximo a 100.

  8. En la quinta y 煤ltima iteraci贸n, el n煤mero 8 se compara con 100 (el valor actual de numeroMaximo). Como 100 es mayor que 8, no se actualiza el valor de numeroMaximo.

  9. Despu茅s de que el bucle for ha iterado sobre todos los n煤meros en el array, el valor final de numeroMaximo es 100.

  10. Finalmente, el c贸digo imprime el valor de numeroMaximo usando console.log(), lo que imprime 100 en la consola del navegador o en la terminal.

//creaci贸n de variables
let listanum = [0,10,2,13,4,15];
let maximo = 0;
let i; 

//se hace un bucle tipo for para recorrer el array uno por uno
//listanum.length cuenta la cantidad de espacios que hay en el array
for (i=0; i< listanum.length; i++){
  //listanum[i] es el array con el valor encontrado en cada espacio
  if (listanum[i] > maximo){
    //si el valor es mayor al encontrado se asigna a la variable "maximo"
    maximo = listanum[i];
  }
  console.log(maximo);

}

Scope de una variable hace referencia al lugar donde va a vivir esta.

  • Global: accesible desde cualquier lugar

  • Local: solo van a vivir en la funci贸n donde sean creadas. Keyword var

  • Block scope: Keyword let y const nos permite tener un scope de bloque, las variables solo van a vivir dentro del bloque de codigo ( entre {} llaves) donde se crean.

Les comparto un poco de teor铆a, la cual considero necesaria para el desarrollo de esta clase de una manera m谩s clara.

En JavaScript, el 谩mbito de una variable se refiere a la parte del c贸digo en la que esa variable es accesible y puede ser utilizada. Hay dos tipos principales de 谩mbito en JavaScript: 谩mbito global y 谩mbito local.

  1. 脕mbito Global: Las variables declaradas fuera de cualquier funci贸n tienen 谩mbito global y son accesibles en todo el c贸digo.

  2. 脕mbito Local: Las variables declaradas dentro de una funci贸n tienen 谩mbito local y solo son accesibles dentro de esa funci贸n. Tambi茅n pueden tener 谩mbito local si se declaran con let o const en un bloque de c贸digo (por ejemplo, dentro de un bucle o una declaraci贸n if).

Es importante entender que las variables con 谩mbito global pueden ser modificadas por cualquier parte del c贸digo, lo que puede llevar a problemas de colisi贸n de nombres y dificultades para rastrear cambios. Por otro lado, las variables con 谩mbito local son m谩s seguras y encapsuladas, ya que solo son visibles dentro de su funci贸n o bloque.
Adem谩s, JavaScript tambi茅n tiene el concepto de 鈥渃ierre鈥 (closure), que permite a las funciones acceder a variables de su 谩mbito exterior incluso despu茅s de que esa funci贸n haya terminado de ejecutarse.

El c贸digo no me quedo igual, pero funciona.

//Encontrar el numero mayor de una array

let numeros = [5, 15, 17, 4, 50, 6, 76]
let max = 0
let tamano = numeros.length

function numeroMax() 
{
 for (let i = 0; i < tamano; i++) 
 {
  if(numeros[i] > max)
  {
   max = numeros[i]
  }
 }
}

numeroMax()
console.log(max)

Se utiliza Let para declarar variable de array por:

Alcance de Bloque: Las variables declaradas con let tienen un alcance de bloque, lo que significa que est谩n limitadas al bloque (por ejemplo, una funci贸n o un bloque if) en el que se declaran.

Prevenci贸n de Errores: Declarar variables con let ayuda a prevenir errores sutiles que pueden ocurrir debido al comportamiento de elevaci贸n (鈥渉oisting鈥) de las variables var

let se utiliza con arrays (y otras variables) debido a sus caracter铆sticas m谩s modernas y seguras

igual recuerden que esta clase es como para brindar una idea del lenguaje java scrip al igual que con los otros dos que estan ense帽ando

La verdad es una lastima la forma poco didactica que tiene la profesora de dar este curso, los otros muy bien, pero este la verdad que ella asume que sabemos los terminos y se supone que es fundamentos de programaci贸n

Aqu脥 no hay interacci贸n con el docente, no hay a quien preguntarle las dudas. las preguntas que uno tiene las responden los mismos estudiantes pero no el profesor. que ese es su trabajo.
los t茅rminos son muy avanzados para nosotros, almenos deber铆a de explicar cada funci贸n, para que sirve y que significa. estoy estresado con eso.

Hay que tener en cuenta que este curso es la 煤ltima parte de una trilog铆a, es cierto que aqu铆 vemos como utiliza el c贸digo de manera totalmente fluida y aplicando conceptos que pueden no entenderse. Recomiendo tomarlo simplemente como un acercamiento y p茅rdida de miedo al lenguaje JS. Mi experiencia con cursos o videos concretos as铆, es tomarlo con mucha calma y hacerlo para conocer la herramienta y probar un poco escribiendo. Pero como digo es algo que no debe frenarnos. Est谩n mostrando un poco de cada lenguaje simplemente eso. Es m谩s que satisfactorio cuando vas poco a poco y desde las bases aprendiendo conceptos cada vez m谩s complicados y as铆 al final ver como todo se une y funciona perfectamente.

yo lo hice de esta manera

const numeros = [5,8,250,50,120]
let max = numeros [0]

for (let i = 0; i < numeros.length; i++){
  if(numeros[i] > max){
     max = numeros[i]
  }
}

console.log(max);

La palabra 鈥渓et鈥 se utiliza para declarar una variable con un alcance limitado al bloque en el que se declara. Las variables declaradas con 鈥渓et鈥 pueden ser reasignadas, pero solo se pueden acceder dentro del bloque en el que se declaran. Esto ayuda a evitar errores en el c贸digo y a mantener el 谩mbito de las variables m谩s controlado.

驴Cu谩l es la diferencia entre LET y var?
let te permite declarar variables limitando su alcance (scope) al bloque, declaraci贸n, o expresi贸n donde se est谩 usando. a diferencia de la palabra clave var la cual define una variable global o local en una funci贸n sin importar el 谩mbito del bloque.

let numeros = [5, 10, 60, 8] - Esto declara una variable llamada 鈥渘umeros鈥 y la inicializa con una matriz de cuatro n煤meros.

let numeroMaximo = 0 - Esto declara una variable llamada 鈥渘umeroMaximo鈥 y la inicializa con el valor cero.

let tamano = numeros.length - Esto declara una variable llamada 鈥渢amano鈥 y la inicializa con el valor de la propiedad 鈥渓ength鈥 de la matriz 鈥渘umeros鈥. La propiedad 鈥渓ength鈥 devuelve el n煤mero de elementos en una matriz.

for(let i=0; i<tamano; i++) { - Esto inicia un bucle 鈥渇or鈥 que recorre la matriz 鈥渘umeros鈥. La variable 鈥渋鈥 se inicializa en cero, el bucle se ejecutar谩 mientras 鈥渋鈥 sea menor que 鈥渢amano鈥 y en cada iteraci贸n, 鈥渋鈥 se incrementar谩 en uno.

if(numeroMaximo < numeros[i]) { - Dentro del bucle 鈥渇or鈥, esto verifica si el n煤mero m谩ximo actual es menor que el n煤mero en la posici贸n actual de la matriz 鈥渘umeros鈥. Si es as铆, el n煤mero m谩ximo se actualiza con el valor de la posici贸n actual de la matriz.

numeroMaximo = numeros[i] - Dentro del bucle 鈥渇or鈥, si el n煤mero actual en la posici贸n actual de la matriz es mayor que el n煤mero m谩ximo actual, la variable 鈥渘umeroMaximo鈥 se actualiza con el n煤mero actual.

console.log(numeroMaximo) - Esto imprime el n煤mero m谩ximo encontrado en la matriz 鈥渘umeros鈥 despu茅s de que el bucle 鈥渇or鈥 haya terminado de iterar.

let maximo= Math.max(5, 10, 15, 60, 8) - Esto declara una variable llamada 鈥渕aximo鈥 y la inicializa con el valor m谩ximo de los argumentos proporcionados a la funci贸n 鈥淢ath.max()鈥.

console.log(maximo) - Esto imprime el valor m谩ximo calculado por la funci贸n 鈥淢ath.max()鈥.

En resumen, este c贸digo busca el n煤mero m谩ximo dentro de la matriz 鈥渘umeros鈥 utilizando un bucle 鈥渇or鈥 y una variable auxiliar llamada 鈥渘umeroMaximo鈥. Luego, se utiliza la funci贸n 鈥淢ath.max()鈥 para encontrar el n煤mero m谩ximo de una lista de argumentos. Ambas t茅cnicas logran el mismo resultado, pero la primera es m谩s adecuada cuando se trabaja con matrices din谩micas y la segunda cuando se trabaja con argumentos est谩ticos.

Por alguna extra帽a razon me manda error. Al parecer ha habido algunas actualizaciones en replit

Sin embargo lo hice en jsconsole y ahi si me da el resultado

si yo no hubiese estudiado ingenier铆a de sistemas, esto me parecer铆a un quebradero de cabeza, creo que es muy avanzado para incluso si uno se pone a investigar y est谩 empezando, cosas por ejemplo como la palabra iterar, las palabras reservadas, como ir de una vez al ciclo for sin haber entendido primero los ciclos while y do while, el contexto, donde poner la l铆nea de c贸digo, c贸mo y d贸nde poner un condicionar, la estructura de las llaves, son bastantes cosas para digerir en un alumno nuevo. estoy seguro que si no hubiera visto java antes, estar铆a en blanco, en fin, si necesitan ayuda con algo respondan a este chat, doy tutor铆as y la columna vertebral de l贸gica de programaci贸n, no es para promocionarme ni nada por el estilo, es que realmente me pareci贸 muy avanzado para alguien que est谩 aprendiendo, hice el mismo c贸digo en Python y hay muchas formas diferente de hacerlo y se puede optimizar pero igual se los dejo y les explico que en Python no es posible compararlo con los indicies del arreglo hasta donde s茅, despu茅s investigar茅.

Es un poco dif铆cil entender cuando falta informaci贸n intermedia, hay conceptos que no se explicaron y por lo mismo se pierde entendimiento en el transcurso de esta clase, les dejo una explicaci贸n de lo que va sucediendo en el c贸digo l铆nea a l铆nea, ya que tuve que consultar otras fuentes para terminar de entender.

let numerosAleatorios = [2, 200, 34, 97, 4];  /* Se declara el array y se definen los valores de cada posici贸n dentro del mismo, para esto se usa la palabra reservada **let** + nombre de la variable definida por el usuario + **[ ]**  (brackets) */
let numeroMaximo = 0; /* Se declara la variable asociada al resultado final que queremos obtener y se define el valor inicial en 0 (esta se define en 0 porque es el punto inicial o m铆nimo desde donde debemos empezar a buscar el numero m谩ximo dentro del array) */
let tamanoArreglo = numerosAleatorios.length; /* Se declara la variable asociada al tama帽o del array, el cual en este caso tiene una longitud de 5 posiciones (let numerosAleatorios = [n1, n2, n3, n4, n5] comenzando en la posici贸n 0 =n1 hasta la posici贸n 4 =n5) */

for (let i = 0; i < tamanoArreglo; i++) { /* Se declara una instrucci贸n de ciclo for, que contiene una sub declaraci贸n de la variable i (let i = 0; i hace referencia a iteraci贸n y es una manera muy com煤n de declarar iteraciones, ser谩 la que utilicemos para recorrer cada posici贸n del array), una comparaci贸n ( i < tamanoArreglo; se refiere a una comparaci贸n, mientras i sea menor que el valor que contiene la variable tamanoArreglo debe ocurrir lo que nosotros indiquemos a continuaci贸n, en este caso una iteraci贸n), una iteraci贸n (i++ En este caso a la variable i se le est谩 sumando un entero por cada iteraci贸n, ++ corresponde a un operador de incremento propio de los lenguajes el cual suma el valor de 1 a la variable que queramos, asi como (+ suma) , (-- disminuye, decrement en ingles), (* multiplica), (/ divide), finalmente el ciclo for contiene una condici贸n y una consecuencia */
if (numeroMaximo < numerosAleatorios [i]) { /* se establece una condici贸n if enlazada al for, si la variable *numeroMaximo* es menor al valor que contiene la variable *numerosAleatorios* en la posici贸n actual de [i]  entonces ocurrir谩 una consecuencia */
    numeroMaximo = numerosAleatorios[i] /* consecuencia, en este caso el valor de la variable numeroMaximo ser谩 igual al valor que contiene la variabl.e numerosAleatorios siempre que la condici贸n establecida anteriormente sea verdadera */
  }
}


console.log(numeroMaximo)

En resumen lo que ocurre es lo siguiente:

  1. Se declaran las 3 variables principales y estas se almacenan en memoria:
  • numerosAleatorios

  • numeroMaximo

  • tamanoarreglo [2 , 200鈥

  1. se establece un ciclo for donde el valor inicial de la iteraci贸n (i) es 0.
  2. Se eval煤a la condici贸n if, como el valor de la variable numeroMaximo es menor al de la variable numeroAleatorio de la posici贸n en 0 (en este codigo la posici贸n 0 del array contiene el valor, 鈥2鈥), el valor de la variable numeroMaximo se establece en 2, posteriormente se evalua i que es menor al tama帽o del arreglo y al valor de i se le suma 1, ahora i es igual a 1, se repite el ciclo.
  3. Se evalua la condici贸n if, numeroMaximo sigue siendo menor a numeroAleatorio por lo cual numeroMaximo toma su valor en la posici贸n actual i = 1, ahora numeroMaximo es igual a 200 posteriormente se evalua i que sigue siendo menor al tama帽o del arreglo y al valor de i se le suma 1, ahora i es igual a 2, se repite el ciclo.
  4. Se evalua la condici贸n if, numeroMaximo ahora es mayor que el valor de la variable numeroAleatorio, por lo cual no se cumple la condici贸n, el valor de la variable numeroMaximo no cambia, se reptie el ciclo hasta la posici贸n 4, todos los valores restantes del arreglo en este caso son menor a 200 por lo cual en ning煤n momento la variable numeroMaximo vuelve cambiar, hasta que finalmente el ciclo for cuando i = 4 se le suma uno siendo i = 5 el ciclo termina y se muestra el console.log finalizando el algoritmo.

espero que les sirva, saludos.

Me gust贸 mucho la clase, entend铆 como puedo mejorar la declaraci贸n del array y hacer un c贸digo m谩s flexible, inicialmente le coloqu茅 un tama帽o y realice el ciclo for en funci贸n de ello, pero con crear una variable que eval煤e el tama帽o se puede colocar la cantidad de n煤meros que deseamos y no habr谩 que modificar nada m谩s 馃檶

Aqui vamos!!

El siguiente algoritmo permite obtener el numero mayor en un array de 鈥渘鈥 elementos considerando tambien los n煤meros negativos. Por tal motivo, igualamos la variable 鈥渕ax鈥 al primer elemento del arrar:

max = numeros[0];
// ALGORITMO QUE PERMITE IDENTIFICAR EL NUMERO MAYOR D UN ARREGLOE DE "n" NUMEROS

//Declaraci贸n de variables

let max;
let i;
let n;
let numeros = []; 

n = parseInt(prompt("Ingrese cantidad numeros: "));

for (i=0; i < n; i++ ){
  numeros[i] = parseInt(prompt("Ingrese los numeros: "));
}

max = numeros[0]; 

for (i = 0; i <n; i++) {
  
  if (numeros[i] > max ) {
    max = numeros[i]; 
  } 
}

alert("El numero mayor es: "+max);
  

Math.max()

La funci贸n Math.max() retorna el mayor de cero o m谩s n煤meros dados como par谩metros de entrada, o NaN si cualquier par谩metro no es un n煤mero y no puede ser convertido en uno.

Si ingresamos todos los numeros negativos, no lo considera el signo.

Si ingresamos negativos y positivos, solo eval煤a los positivos.

Ejemplo:

Cabe resaltar que para usar Math.max los numeros deben estar en listado y no en formato de array.

No muestra porque no se ha ejecutado una sentencia para mostrar el resultado, por ejemplo, alert, o un log, como en las clases anteriores.

Que clase de mierda pero bueno a seguir

//declaramos el array

let numbers = [2,3,6,1,8,4];

//variable que mide/almacena el tama帽o del array

let length = numbers.length;

//variable que almacena el n煤mero m谩s grande

let maxNumber = 0;

//ciclo que inicia en la posici贸n 0 del array, lo recorre por completo y, cuando se encuentra un n煤mero mayor al "maxNumber", lo sustituye

for (let i = 0; i < length; i++) {
  if(maxNumber < numbers[i]) {
    maxNumber = numbers[i];
  }
}

//Imprimimos en consola el resultado

console.log("El n煤mero m谩s alto es " + maxNumber);

El scope es el alcance que puede tener una variable, hay local y global.

  • Local: s贸lo existe dentro del c贸digo.
  • Global: existe en todo el c贸digo (var tiene scope global)

Platzi tiene un art铆culo al respecto:
https://platzi.com/blog/como-funciona-el-scope-en-javascript/#:~:text=Comparte en%3A-,驴Qu茅 es el scope en JavaScript%3F,global y el scope local.

En varios paises desarrollados ya incluyen en su pensum de estudio desde la edad preescolar hasta diversificado. En mi pa铆s 煤nicamente si incluye programaci贸n en las carreras de Bachillerato con orientaci贸n en computaci贸n. Con lo poco que estoy entiendo en platzi y con los logros en otros paises me urge empezar a trabajar en todos los niveles programaci贸n, la era digital nos obliga hacerlo. Saludos desde Guatemala.

Aqu铆 una soluci贸n que es pedirle al usuario a帽adir los n煤meros a la lista.

let array = [];
let max = 0;
let i = 0;

alert("--Programa para saber cual es el m谩ximo numero de una lista--");

do{
  numeros = parseFloat(prompt("Escribe un numero: "));
  array.push(numeros);
  opcion = parseInt(prompt("Quieres seguir a帽adiendo un n煤mero a lista, digita 1-Si 2-No"));
  
}while(opcion == 1)

while(i < array.length){
  if(array[i] > max){
    max = array[i]
    i = i + 1
  }else{
    i = i + 1;
  } 
}

alert("El n煤mero m谩ximo de la lista  [" + array + "] es " + max);

![](

var puede ser usado en cualquier parte del codigo.
let esta bloqueado, solo sirve en los limites de los primeros brackets ( { } )donde se encuentra, esto sirve para encapsular los valores y utilizar el mismo valor con diferentes datos en diferentes brackets.

\n

Yo eleg铆 otro camino y le agregue algunas cosas.

var numeros = [];
var max = 0;
var i = 0;
var o = 0;

function ingresarDatos(){
    console.log("Este script sirve para imprimir el numero mas grande de una lista.");
    cantidadNuevoNumero = parseFloat(prompt("Cuantos n煤meros deseas ingresar?"));
    while(o < cantidadNuevoNumero){
        numeros.push(parseFloat(prompt("Ingresa el no."+( o+1 ))));
        o++;
    }
}

function maxNumeros(){
    ingresarDatos();
    while(i < numeros.length){
        if(numeros[i] > max){
            max = numeros[i];
            i++;
        } else {
            i++;
        }
    }
    console.log("Todos los numeros agregados son:\n" + numeros + "\n\n" +
                "El numero mas grande es: " + max);
}

maxNumeros();

Aqui una version con la libreria math

 var numeros = [];
var i = 0;

function maxNumeros(){
    console.log("Este script sirve para imprimir el numero mas grande de una lista.");
    cantidadNuevoNumero = parseFloat(prompt("Cuantos n煤meros deseas ingresar?"));
    while(i < cantidadNuevoNumero){
        numeros.push(parseFloat(prompt("Ingresa el no."+( i+1 ))));
        i++;
    }
    console.log(numeros)
    console.log("Todos los numeros agregados son:\n" + numeros + "\n\n" +
                "El numero mas grande es: " + 
                Math.max(...numeros)
                );
}

maxNumeros();

agregar un simple sleep 1 en javascript es un horror鈥 hasta donde logre ver es necesario hacer cosas raras con setTimeout, y trabajar directamente en terminal usando node es otra tortura. De momento javascript para trabajar en terminal o fuera del navegador no se ve prometedor, electron no se ve como buena opci贸n de momento.

Para la web es obligado as铆 que sin duda ser谩 uno de mis lenguajes de cabezera. Ya veremos que trae webassembly en el futuro.

Mi aporte:

let maximo = Math.max(9,9999,99,99999,999999,99999999999,999999,99999999999,99999999999999)
console.log("El n煤mero m谩s alto es: " + maximo);

let minimo = Math.min(9,9999,99,99999,999999,99999999999,999999,99999999999,99999999999999)
console.log("El n煤mero m谩s peque帽o es: " + minimo);

// Encontrar el numero mayor en una lista de una array

//VARIABLES
let numeros_array = [200, 300, 4, 201, 343, 5, 2]
let posicion_de_array = 0
let tamano_array = numeros_array.length

//INSTRUCCION
for(let numero=0; numero < tamano_array; numero++) {
if (posicion_de_array < numeros_array[numero]) {
posicion_de_array = numeros_array[numero]
}
}
//MOSTRAR
console.log(posicion_de_array)

//Funcion Math.max
let Numeros_array = Math.max (100, 300, 4, 201, 343, 5, 2)
console.log(Numeros_array)

//declaramos el array

let numeros = [5, 1, 2, 4, 6]

// variable que almacena el largo del array para luego usarse en el ciclo for

let tamano = numeros.length

//variable que almacena el n煤mero m谩s grande

let max = 0

//ciclo que inicia en la posici贸n 0 del array, lo recorre por completo y, cuando se encuentra un n煤mero mayor al "max", lo sustituye

for (let i = 0; i < tamano; i++) {
    if (numeros[i] > max) {
        max = numeros[i]
    }
}

//Imprimimos en consola el resultado

console.log("El n煤mero m谩s alto seg煤n la forma imperativa es: " + max)

//variable que almacena el n煤mero m谩s bajo, iniciando en la primera posici贸n del array n煤meros para que no de error con el 0

let min = numeros[0]

for (let i = 1; i < tamano; i++) {
    if (numeros[i] < min) {
        min = numeros[i]
    }
}
console.log("El n煤mero m谩s bajo seg煤n la forma imperativa es: " + min)



// variacion, esta forma ser铆a declarativa, ya que nada m谩s le pido el resultado m谩s no indico la secuencia del proceso

// los tres puntos son el spread operator, el cual sirve para llamar al array sin tener que colocarlo completo

let maximo = Math.max(...numeros)
let minimo = Math.min(...numeros)

console.log("El n煤mero m谩s alto seg煤n la forma declarativa es: " + maximo)
console.log("El n煤mero m谩s bajo seg煤n la forma declarativa es: " + minimo)








Ac谩 ponemos leer 驴qu茅 es un scope? y la diferencia entre let, const y var.
https://platzi.com/blog/como-funciona-el-scope-en-javascript/

Se puede ordenar con el metodo sort(), aunque este m茅todo no ordena de forma num茅rica, se lo puede usar para ordenar el array usando una funci贸n de comparaci贸n y obtener el valor m谩ximo restando menor uno al tama帽o toral del arreglo. ```js //Arreglo let array_numerico = [5, 10, 15, 60, 8]; let max = 0; // variable para obtener el valor m谩ximo /* Usando una funci贸n an贸nima normal quedar铆a de la siguiente forma: [5, 8, 10, 15, 60] */ array_numerico.sort(function (a, b) { return a - b; }); // Se obtiene el valor m谩ximo 60 max = array_numerico[array_numerico.length - 1]; console.log(max); // Imprime 60 ```Una forma m谩s corta es usando una funci贸n de flecha en lugar de una funci贸n an贸nima. ```js /* Usando una funci贸n flecha quedar铆a de la siguiente forma: [5, 8, 10, 15, 60] */ array_numerico.sort((a, b) => a - b); ```
```js //Encontrar el numero mayor de una lista de numeros en un array let numeros = [5, 10, 15, 60, 8] let numeroMaximo = 0 let tamano = numeros.length for(let i=0; i
```js let numeros = [100,35,92,8,200] let numeroMaximo = 0 let tamano = numeros.length for(let i=0; i
Para la soluci贸n se dio el uso del ciclo for, cabe resaltar la importancia de usar length. ```js //Econtrar el numero m谩s grande en el array let array = [1, 22, 3, 4, 5, 6, 7, 8, 9, 10,11]; let numeroMaximo = 0; for (let i = 0; i < array.length; i++){ if (numeroMaximo < array[i]){ numeroMaximo = array[i]; } } console.log(numeroMaximo); ```
El ciclo puede crearse de la siguiente manera. ```js //Econtrar el numero m谩s grande en el array let array = [1, 22, 3, 4, 5, 6, 7, 8, 9, 10,11]; let numeroM谩ximo = 0; for (let i = 0; i < array.length; i++){ if (numeroM谩ximo < array[i]){ numeroM谩ximo = array[i]; } } console.log(numeroM谩ximo); ```
En JavaScript, `let` y `var` se utilizan para declarar variables, pero tienen diferencias importantes en su comportamiento y alcance. Aqu铆 te explico cu谩ndo usar cada una y las diferencias principales: \### `var` 1\. \*\*Alcance (Scope)\*\* \- El alcance de `var` es de funci贸n. Es decir, una variable declarada con `var` es accesible dentro de toda la funci贸n en la que se declara, independientemente del bloque en el que se encuentre. \- No tiene alcance de bloque, lo que significa que si declaras `var` dentro de un bloque (por ejemplo, un bucle `for` o un bloque `if`), la variable sigue siendo accesible fuera de ese bloque. 2\. \*\*Hoisting\*\* \- Las variables declaradas con `var` son "hoisted" (elevadas) al principio de su contexto de ejecuci贸n. Esto significa que puedes usar la variable antes de declararla (aunque ser谩 `undefined` hasta que se ejecute la l铆nea de declaraci贸n). \### `let` 1\. \*\*Alcance (Scope)\*\* \- El alcance de `let` es de bloque. Esto significa que una variable declarada con `let` solo es accesible dentro del bloque en el que se declara (entre `{}`). \- Esto ayuda a evitar errores y confusiones, ya que la variable no puede ser accidentalmente utilizada fuera de su contexto. 2\. \*\*Hoisting\*\* \- Al igual que `var`, las variables declaradas con `let` son "hoisted", pero la diferencia es que no se inicializan. Esto significa que no puedes usar una variable `let` antes de declararla; intentar hacerlo resultar谩 en un error de referencia. \### Ejemplos \#### `var` ```javascript function ejemploVar() { if (true) { var x = 5; } console.log(x); // 5, aunque x fue declarada dentro del bloque if, est谩 accesible fuera del bloque } ejemploVar(); ``` \#### `let` ```javascript function ejemploLet() { if (true) { let y = 5; } console.log(y); // Error: y no est谩 definida, porque y solo es accesible dentro del bloque if } ejemploLet(); ``` \### Resumen \- Usa `let` cuando quieras una variable que est茅 limitada al alcance del bloque donde se declara, lo cual es m谩s seguro y predecible. \- Usa `var` si necesitas compatibilidad con c贸digo m谩s antiguo o si entiendes y necesitas el alcance de funci贸n que `var` proporciona. En general, `let` es preferido en el c贸digo moderno de JavaScript debido a su alcance m谩s predecible y su protecci贸n contra errores accidentales.
seg煤n investigu茅, hay diferentes tipos de variables por ejemplo let y const, let puede cambiar de valor pero const no puede, el scope puede ser local o global, dependiendo si est谩 o no dentro de una funci贸n
Con todo respeto y perd贸n si llego a herir sensibilidades pero veo que hay muchas personas que se quejan y solo saben quejarse. Veo que no entienden algo y lo toman como un absoluto y lo que hacen es trasmitir esa sensaci贸n de incertidumbre a todos los que los leen (yo incluido). Lo mejor que pueden hacer es preguntar y declarar en donde se perdieron! No simplemente decir que este curso no sirve o que es muy complejo. Este curso es coherente y la forma de comprobarlo es que todos los temas que la profesora usa los ha explicado antes. Reitero, pregunten, manifi茅stese, pero no se quejen y queden de brazos cruzados.
3 horas en esta clase y por alguna raz贸n que desconozco la primera vez que escrib铆 el c贸digo no funcion贸! jajaja se arregl贸 como se arreglaban los equipos antes, apag谩ndolo y volviendolo a encender 隆Alg煤n d铆a entender茅 bien todo esto! Por ahora vamos bien, muy buen curso!
Hola... dejo esta nota por si no te deja correr el c贸digo, la soluci贸n es la siguiente: let numeros = \[5, 10, 15, 60, 8]; let max = numeros\[0]; // Inicializar max con el primer elemento del array let tamano = numeros.length; for (let i = 0; i < tamano; i++) { if (max < numeros\[i]) { max = numeros\[i]; // Actualizar max cuando encuentras un n煤mero mayor } } console.log(max); // Salida: 60
Muy did谩ctica la p谩gina de replit, te va guiando de manera que cometas la m铆nima cantidad de errores al desarrollar el algoritmo
```js // Encontrar el numero mayor de una lista de numeros en un array let numeros = [5, 10, 15, 60, 108]; let numeroMaximo = 0; let tamano = numeros.length; for (let i = 0; i < tamano; i++){ if (numeroMaximo < numeros[i]){ numeroMaximo = numeros[i]; } } console.log("El n煤mero m谩ximo es: ", numeroMaximo); let max = Math.max(5, 10, 15, 60, 108); console.log("El n煤mero m谩ximo con Math es: ", max); ```// Encontrar el numero mayor de una lista de numeros en un array let numeros = \[5, 10, 15, 60, 108]; let numeroMaximo = 0; let tamano = numeros.length; for (let i = 0; i < tamano; i++){ if (numeroMaximo < numeros\[i]){ numeroMaximo = numeros\[i]; } } console.log("El n煤mero m谩ximo es: ", numeroMaximo); let max = Math.max(5, 10, 15, 60, 108); console.log("El n煤mero m谩ximo con Math es: ", max);
A las personas que est谩n <u>empezando desde cero</u> como yo, les recomiendo seguir bien la ruta de "Fundamentos de Programaci贸n y Desarrollo Web", es decir, que hay unos cursos pre-requisitos para ver el de Lenguajes, este vendr铆a siendo el 4to curso de la RUTA. 脕nimo chicxs!
Pensaba que 铆bamos a seguir con esa curva de aprendizaje que ven铆amos al principio. Vi los dos cursos anteriores y no soy capaz de seguir en este punto el curso. Me qued茅 re tirado. Voy a dejar este curso de moemnto y hacer el curso de programaci贸n b谩sica donde ven justamente javascript y volver茅 a intentarlo. Suerte y paciencia a todos. Abrazo!
//Encontrar el n煤mero mayor de una lista de n煤meros en un array let numeros = \[5, 10, 15, 60, 8] let numeroMaximo = 0 let tama帽o = numeros.length for(let i = 0; i\
por q habla en femenino ? es solo para mujeres ?
Alguien sabe en que clase o curso ense帽an mejor el uso de let?
gracias
驴Alguien sabe qu茅 est谩 mal con mi c贸digo? No entiendo por qu茅 me esta dando ese resultado. ![](https://static.platzi.com/media/user_upload/image-99eb717f-8916-40a4-ac1d-e26fb30963cb.jpg)
![](https://static.platzi.com/media/user_upload/Captura-ff21a5ef-4641-44a8-bfd2-0c558f0eeb7a.jpg)
En los conocimientos previos en este curso aparte de los dos cursos anteriores de Pensamiento L贸gico deben poner que se necesita conocimiento de JavaScript, de lo contrario no se comprende esta clase. Los que la entendieron es porque ya conocen de ese lenguaje de programaci贸n. He decidido ignorar esta clase, que me parece que est谩 mal ubicada, espero que no ocurra lo mismo con las clases de Python y PHP que vienen a continuaci贸n.
disculpen por qu茅 cuando cambio el nombre del archivo no me corre el codigo si tengo todo igual al ejercicio?.Gracias
porque falta escribir console.log y el nombre de la variable principal que es el \*array numeros, es decir porque falta llamar a la variable asi como con Funciones, que porque asi se trabaja en Javascript
no entiendo, que mal
Esto se torna oscuro para los nuevos... 谩nimos...
Documentaci贸n Javascript: <https://developer.mozilla.org/es/docs/Web/JavaScript>
![](https://static.platzi.com/media/user_upload/image-27ba0e3d-248f-4f2a-bfc2-1b16a6ab7e67.jpg)
```js let maxima = 0; let arr = [6,5,7,10,2]; for (let i = 0; i < arr.length; i++) { if(arr[i]>maxima){ maxima = arr[i]; } } console.log(maxima); console.log(Math.max(...arr)) ```

Observen mi c贸digo, quiero que se concentren en una diferencia. Dentro del m茅todo Math.max() en lugar de colocar todos los n煤meros que voy a comparar reutilizo nuestro array llamado numeros. A los 3 puntos se les conoce como spread operator, y nos permite copiar los elementos de un array.

let numeros = [223, 124, 4231, 432423, 43, 123, 4, 1, 44343243, 49, 19, 1111111111];

let maximo = Math.max(...numeros);
console.log(maximo);

//La consola mostrar谩: 1111111111
Para definir una variable en JavaScript, puedes utilizar las palabras clave `var`, `let` o `const`. La elecci贸n entre ellas depende del alcance y la mutabilidad que desees asignar a la variable.
Hola, hice un c贸digo con algunos comentarios explicando que fue lo que hicimos. ```js //Definicion del array: se crea un array llamado numeros que contiene una lista de numeros let numeros = [5,10,15,60,8]; //Inicializacion de variables: numeroMaximo se inicializa en 0, este sera el valor que se actualizara si se encuentra un numero mayor, tamano se inicializa con la longitud del array (llamada numeros). Esta variable ademas se utilliza para definir la condicion de terminacion del bucle let numeroMaximo = 0; //Creamos una variable con la cantidad de posiciones del array que definimos let tama帽o = numeros.length; //Ciclo for para encontrar el numero maximo: Se utiliza for para recorrer cada posicion del array. La condicion numeroMaximo < numeros[i] verifica si el valor en la posicion actual del array es mayor que el valor actual de numeroMaximo. Si es asi, se actualiza el valor de numeroMaximo con el valor de la posicion. for(let i = 0; i
`//Encontrar el numero mayor de una lista de numeros en un array` `let numeros = [6,36,56,79,8]` `let numeroMaximo = 0 //Asignar un numero inicial` `let tamano = numeros.length //Definir el tama帽o del array` `for(let i=0; i