Lista de reproducción del curso completo gratuito de JS kzbin.info/aero/PLpJ0pHgIwPoHeOw6_yRERfEF5pXjyAIcK
@soulhunter2239 ай бұрын
Usted es el mejor profesor de JS, GRACIAS TOTALES PROFE MARCOS !!!
@felipeordonez88855 ай бұрын
Excelente clase profe
@josemartinezflorez5230 Жыл бұрын
ese método es muy bueno y se utiliza mucho
@MarceloKralik2 ай бұрын
Genial, gracias
@Pablo-io2js3 жыл бұрын
Hola Marcos. Al principio, al ver sólo la teoría, me pareció algo muy similiar (en cuanto a funcionamiento) al forEach (como mencionas en el video). Y luego quise hacer la prueba directamente con el código, y obtuve este resultado: CON FOREACH: let numeros1 = [1,2,3,4,5,6] let multiplicar1 = numeros1.forEach(x => x * 2) console.log(multiplicar1) ========> Muestra "undefined" CON MAP: let numeros = [1,2,3,4,5,6] let dameElDoble = numeros.map(x => x * 2) console.log(dameElDoble) ========> Muestra "[2,4,6,8,10,12]" NOTA: en los ejemplos usé la función flecha porque me resulta más fácil y, además, para poner menos código. Como se ve, con forEach muestra "undefined" y con map realiza la multiplicación sin problema con cada uno de los elementos del array. Me parece raro que forEach no retorne las multiplicaciones, o mejor dicho, no entiendo por qué forEach no retorna las multiplicaciones. Y es por eso que puse el código acá en los comentarios para leer la opinión de un experto como vos. Acá es donde llego al punto en donde se me empieza a complicar la programación como lo explicabas al principio de los videos y dijiste que nos pasa a TODOS jaja. Muchas gracias!
@AprogramarConMarcos3 жыл бұрын
// Lo que pasa es que forEach no trabaja como esperas, si miras la especificación te dice que retorna undefined. Te dejo el enlace: developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach let numeros1 = [1,2,3,4,5,6] // Esto si funciona let multiplicar1 = numeros1.forEach(x => console.log (x * 2)); // Pero multiplicar seguirá diciendo undefined console.log(multiplicar1) // Miralo asi ninguna de las dos maneras retorna otra cosa que undefined. let res = numeros1.forEach(x => (x)); let res2 = numeros1.forEach(function (x) { return x; }); console.log (res,res2); // undefined undefined // Te digo mas SUPONIENDO que funcionara y retornara valores, tampoco tendrias el resultado que esperas porque forEach no esta pensado para retornar un array, si efectivamente retornara valores por cada iteración lo que estarías haciendo es sobrescribir valores en la variable que llamaste multiplicar1 y terminarias solo con 6*2 = 12, todos los demás valores se hubieran perdido. En todo caso tendrias que por cada iteración del bucle usar otro Array previamente definido vacío y con el método push inyectar cada resultado al nuevo array por cada iteración y al final ver como quedo armado ese array con el resultado de tus cuentas (para eso existe MAP). let nuevoArray = []; numeros1.forEach(function (x) { return nuevoArray.push(x * 2); console.log (nuevoArray); });// Espero que se entienda, un abrazo.
@Pablo-io2js3 жыл бұрын
@@AprogramarConMarcos Hola Marcos. Antes que nada, gracias por tomarte la molestia de responderme con tanto lujo. Estaba intentando comprender la diferencia entre el forEach y el map. ¿Puede ser que el map se usa más que nada como un método de consulta? y que si quiero guardar el resultado de esa consulta tengo que crear una variable nueva para alojar allí el resultado del nuevo array? En cambio el forEach se usa para modificar los elementos del array original y no retorna un resultado como si lo hace map, ya que se le está indicando que haga algo con cada elemento del array. Cómo los números son elementos primitivos y no se pueden modificar, al ejecutar un forEach de multiplicar * 2 a cada elemento, no modifica el array por ser los números inmutables. En cambio, si en el array tuviese objetos con métodos, podría modificar dichos objetos con sus respectivos métodos. ¿Es así? Si no es molestia, por favor, corregime todos mis errores. Mil gracias!
@AprogramarConMarcos3 жыл бұрын
@@Pablo-io2js Pablo me parece que te estas haciendo demasiados cuestionamientos, de como trabaja el motor, te acordas el ejemplo del auto. Yo me quedaría con que el forEach es un método que sirve para recorrer un array que no devuelve nada (undefined) y lo podes usar donde consideres necesario como un bucle for solo que mas simple. Por otro lado el método MAP también recorre un array pero este te permite regresar un nuevo array dejando intacto el anterior. Si queres saber como y cuando los utilizan busca ejemplos en google que hay miles, en la pagina que te pase estan todos los métodos y debajo tenes ejemplos para ver como los usan. Eso en mi opinión de todas formas se aprende con el tiempo, hoy estamos tomando clases de manejo y vamos a 40 frenando en cada esquina para no chocar, eventualmente podrás acelerar e incluso ser piloto o correr picadas, pero eso te lo da el tiempo de manejo y la experiencia. Yo hace 2 años que estudio y aun manejo despacio, dicen que se necesitan 10.000 horas de practica para poder correr. Así que me falta un largo camino...
@Pablo-io2js3 жыл бұрын
@@AprogramarConMarcos Es verdad Marcos, me estoy queriendo meter adentro de la estructura del forEach para ver como trabaja, ya que si yo fuese el programador que hizo JavaScript, ni lo hubiese puesto al forEach porque hasta ahora, no le veo sentido teniendo map como alternativa. Pero soy ultra novato y, por ende, doy opiniones de novato porque, como vos decís, tendría que ver ejemplos prácticos del forEach y del map y ver cuándo uso uno, y cuándo el otro. Quizás también tengo un poco de ansiedad, porque cuando me gusta algo, me gusta investigar todo, pero me olvido de que hace re poquito que empecé a ver JavaScript con tus videos. Muchas gracias por la paciencia y por los consejos y perdón si soy reiterativo en el mismo tema. Saludos!
@AprogramarConMarcos3 жыл бұрын
@@Pablo-io2js Todo bien pablo, yo soy igual, de hecho me la paso estudiando y segun yo nunca se nada, es que creo que tengo estándares muy altos (y reitero yo considero que no se nada de programación, esto en mi opinión es como sumar 2 + 2 y decir soy profesor de matemáticas) ni cerca, soy un tipo que le mete horas, tiene ganas de aprender, le gusta enseñar, tiene facilidad para eso y lo hace por hobbie porque considero que me sirve a mi y le puede servir a otro, nada mas... Te doy un consejo que me doy a mi mismo a diario, esta bien no subirse a un tren sin saber a donde va, quien conduce y si es seguro, pero no sea cosa que por querer saber todo pierdas el tren. Yo muchas veces en mi vida perdí el tren, y despues vi gente que sin saber ni preguntar nada se conocía el mundo. Un abrazo.
@josemartinezflorez5230 Жыл бұрын
let lista = [1,2,3,4,5,6] for (const list of lista) { console.log(list * 2) } esta seria otra forma ???????????????
@skull.189 ай бұрын
¿En los parámetros de la función utilizando el método, como sabe que te refieres al índice del objeto? o al valor?
@AprogramarConMarcos7 ай бұрын
En JavaScript, los parámetros de una función son simplemente nombres que tú le das a los valores que esperas recibir cuando llamas a la función. La distinción entre si te refieres al índice de un objeto o al valor depende completamente de cómo llames a la función y qué haces con los parámetros dentro de la función. Por ejemplo, si tienes una función que recibe un objeto y un índice, podrías llamar a la función de esta manera: function miFuncion(objeto, indice) { console.log("Objeto:", objeto); console.log("Índice:", indice); } const miObjeto = { nombre: "Juan", edad: 30 }; miFuncion(miObjeto, 0); En este caso, `miFuncion` recibe un objeto (`miObjeto`) y un índice (`0`). Dentro de la función, `objeto` hace referencia al objeto que has pasado como argumento y `indice` hace referencia al índice que has pasado. Sin embargo, si quisieras hacer referencia al valor asociado con el índice en el objeto, podrías hacerlo de esta manera: function miFuncion(objeto, indice) { console.log("Valor:", objeto[indice]); } const miObjeto = { nombre: "Juan", edad: 30 }; miFuncion(miObjeto, "edad"); En este caso, `miFuncion` recibe un objeto (`miObjeto`) y una clave (`"edad"`). Dentro de la función, `objeto` hace referencia al objeto que has pasado como argumento y `indice` hace referencia a la clave que has pasado. `objeto[indice]` hace referencia al valor asociado con esa clave en el objeto. Así que, en resumen, cómo se interpreta un parámetro de una función depende completamente de cómo lo uses dentro de la función. Puedes usar el parámetro para acceder al valor asociado con una clave en un objeto, o puedes usarlo directamente como un valor independiente, según lo necesites.
@dinocastagno92252 жыл бұрын
consulta.. q también va para el video anterior. Como sabe la función que el primer parámetro es para los índices y el segundo para el valor? o eso ya viene predefinido? . Muchas gracias crack
@miguelangelrosalesmoya6694 Жыл бұрын
si ya viene como algo default
@cheems44032 жыл бұрын
no seria mejor asi let lista=[1,2,3]; for(let i=0;i
@AprogramarConMarcos2 жыл бұрын
Todos los métodos tienen una razón de ser para eso se crearon, los ejemplos son para que entiendan como se utilizan, al avanzar verán cuando y porque usan una cosa u otra. Eso requiere experiencia y muchas horas de practica, te lo digo de otra forma, podes sacar una tuerca con muchas diferentes herramientas, pero la experiencia te dirá cuando es mejor una herramienta que otra y porque.