Nos permite recorrer Arrays ejecutando elementos de código por cada elemento de objeto.
const productos = [
{ id: 1, producto: "Arroz" },
{ id: 2, producto: "Fideo" },
{ id: 3, prpodcuto: "Pan" },
];
for (const producto of productos) {
console.log(propducto.id);
console.log(propducto.producto);
}
hace es que itera sobre el array y a cada elemento le ejecuta la función que yo quiero. Algo muy importante a tener en cuenta es que este mismo no RETORNA NADA, en su lugar devuelve undefined ESTO FUNCIONA PARA ARRAYS
let numeros = [1, 2, 3, 4, 5];
// num es en realidad la variable que almacena el numero, es decir que num es una variable creda ahí solo que no se le coloca el let; Pero
// seria igual que decir: 'letnum = numeros' y como num toma el valor de el array numros, num tendra como valor esos numeros
// num seria algo como: num = [1, 2, 3, 4, 5] por eso al pasar el console.log(num) lo que nos da son los numeros de el 1 al 5 //
numeros.forEach((num) => {
console.log(num); // 1, 2, 3, 4, 5 //
});
Algunos ejercicios de ForEach:
// Ejercicio 1: Suma de elementos en un arreglo// Dado un arreglo de números, utiliza forEach para calcular la suma de todos los elementos en el arreglo. //let numeros = [10, 20, 30, 40, 50];
let total = 0;
numeros.forEach((suma) => {
total += suma;
console.log(total)
});
// Ejercicio 2: Filtrar elementos en un arreglo// Dado un arreglo de números, utiliza forEach para crear un nuevo arreglo que contenga solo los números pares del arreglo original. //let numeros = [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, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,];
let resultado
let nuevoArr = [];
numeros.forEach((pares) => {
if (pares % 2 === 0) {
nuevoArr.push(pares)
}
})
console.log(nuevoArr)
// Ejercicio 3: Buscar un elemento en un arreglo de objetos// Dado un arreglo de objetos que representan personas con nombres y edades, utiliza forEach para buscar una persona en particular// por su nombre y luego muestra su edad. //const personas = [
{ nombre: "Ana", edad: 25 },
{ nombre: "Juan", edad: 30 },
{ nombre: "Luis", edad: 22 },
{ nombre: "María", edad: 28 },
];
personas.forEach((buscarPersona) => {
let busqueda = [];
if (busqueda = buscarPersona.nombre === "Ana" ){
busqueda = buscarPersona.edad;
returnconsole.log(busqueda)
}
});
Sirve para buscar elementos de un array por medio de la comparación por parametro y retorna la coincidencia , Una cosa importante es que retorna el primer elemento que cumpla la condición.
let nombres = [
{ nombre: "Jose", apellido: "Martinez" },
{ nombre: "Mia", apellido: "Lune" },
{ nombre: "Kiwi", apellido: "DeMontaña" },
{ nombre: "Mia", apellido: "Lune" },
];
let busqueda = nombres.find((buscar) => buscar.nombre === "Mia");
let busqueda2 = nombres.find((buscar) => buscar.nombre === "Kiwi");
let busqueda3 = nombres.find((buscar) => buscar.nombre === "Miaurwick");
console.log(busqueda);
console.log(busqueda2);
console.log(busqueda3);
Al igual que el Método find, este es una funcion comparadora por parametro y RETORNA UN NUEVO ARRAY con los elementos que cumplieron la condición y si no hay coincidencias retornara un array vacío.
let productos = ['
{
"nombre": "Papel",
"precio": 19.99,
"descripcion": "Este es el producto 1. Es una descripción de ejemplo."
},
{
"nombre": "Pelota",
"precio": 29.99,
"descripcion": "Este es el producto 2. Otra descripción de ejemplo."
},
{
"nombre": "Piano",
"precio": 9.99,
"descripcion": "Este es el producto 3. Una tercera descripción de ejemplo."
}
]
let filtrar = productos.filter( (elemento) => elemento.nombre === "Papel")
console.log(filtrar); // Devolvera un nuevo arry que tenga adentro el elemento "Papel" //// También puede usarse con métodos como .includes() //let filtrar2 = productos.filter( (elemento) => elemento.nombre.includes("p")
console.log(filtrar2); // Dara comof resultado 'Papel'puesto que es el unico con una 'p' minuscula //
Sirve para buscar elementos de un array por medio de la comparación por parametro y retorna true o false, se usa para verificar que el elemento existe.
let nombres = [
{nombre: "Jose", apellido: "Martinez"},
{nombre: "Mia", apellido: "Lune"},
{nombre: "Kiwi", apellido: "DeMontaña"},
{nombre: "Mia", apellido: "Lune"},
];
let busqueda = nombres.some((buscar) => buscar.nombre === "Mia");
console.log(busqueda); // Retornara Treu ya que si existe //
Crea un nuevo array con los elementos de el original, el map me permite reducir o agrandar la informacíón dentro de el array porque retorna un array de la misma dimensión al que le estoy aplicando el map en uno nuevo que le puedo asignar. Al importante a tener en cuenta es que el MAP RETORNA Y EL FORA EACH NO, esto puede deteminar si o usar una o la otra; Otra razón muy importante seria uso for Each cuando quiero que me quede en el array original y map si quiero que me quede en un nuevo array ESTO FUNCIONA CON ARRAYS
let productos = ['
{
"nombre": "Papel",
"precio": 19.99,
"descripcion": "Este es el producto 1. Es una descripción de ejemplo."
},
{
"nombre": "Pelota",
"precio": 29.99,
"descripcion": "Este es el producto 2. Otra descripción de ejemplo."
},
{
"nombre": "Piano",
"precio": 9.99,
"descripcion": "Este es el producto 3. Una tercera descripción de ejemplo."
}
]
let productosReducidos = productos.map( (reduccion) => reduccion.nombre);
console.log(productosReducidos); // "Papel", "Pelota", "Piano" // Pero si fuese un forEach nos daria tanto el nombre como el precio y
// como la descripción ya que esta no reduce el array a solo lo que queremos que muestre sino todo el arr //
Nos permite obtener un único valor tras iterar sobre un array, el método reduce recibe dos parámetros:
El primero es la función que ordena qué queremos resumir del array este recibe un elemento que funciona como acumulador y el elementos de el array que iteramos.
El segundo es el valor inicial de el acumulador.
let numeros = [1, 2, 3, 4 ,5 ,6];
let total = numeros.reduce((acumulador, numeros) => acumulador + numeros, 0);
// Explico: acumulador y numeros son variables recien creadas, que pasa que acumulador es el que va a arrancar en 0 y se le va a ir sumando
// el valor de el elemento es como si dijera: acumulador en la primera vuleta vale 0 y numeros 1 ya que es el valor incial del arr y se
// sumarian algo asi: Primera vuelta(1) acumulador = 0 numeros = 1 eso sumado seria: 0 + 1 = 1
// segunda vuelta(2) acumulador = 1 numeros = 2 eso sumado seria 1 + 2 = 3 y porqur acumulador es 1 ahora? facil, toma el valor de la suma
// anterior y asi susecivamente primero vale 0 luego 1 luego 2 luego 3 hasta el final de el array al igual que numeros inicia siendo
// el primer valor de el array con cada iteracion rota al segundo valor luego al tercero solo que esta vez esa asi ya que son numeros. //
console.log(total); // 21 //
Amigo tienes un pequeño error en busqueda3 al llamar el nombre colocaste " Miaurwick" y sale undefined en la consola, debes cambiarlo como lo muestro abajo a “Mia”. Solo eso, aparte que buen tutorial que ganaaas!.
{ nombre: "Jose", apellido: "Martinez" }, { nombre: "Mia", apellido: "Lune" }, { nombre: "Kiwi", apellido: "DeMontaña" }, { nombre: "Mia", apellido: "Lune" }, ]; let busqueda = nombres.find((buscar) => buscar.nombre === "Mia"); let busqueda2 = nombres.find((buscar) => buscar.nombre === "Kiwi"); let busqueda3 = nombres.find((buscar) => buscar.nombre === "Mia"); console.log(busqueda); console.log(busqueda2); console.log(busqueda3); <code>