DEV Community

Discussion on: Método Map para JavaScript y React

Collapse
lukeshiru profile image
LUKESHIRU

El ejemplo comparando Array.prototype.map con Array.prototype.forEach esta herrado. forEach no modifica el array original a menos que lo hagas de forma explicita:

const array = [1, 2, 3];
array.forEach(item => item * 2); // Devuelve undefined, array sigue siendo [1, 2, 3]
array.forEach((item, index) => {
    array[index] = item * 2; // ahora si mutamos el array original.
});
Enter fullscreen mode Exit fullscreen mode

Si bien deberías evitar mutar el array original, hago esta este ejemplo para mostrar porque forEach no modifica el array original a menos que lo hagamos de forma explicita.

También me gustaría agregar que si bien no podes usar async/await con map, si podes usar Promise.all. Siguiendo tu ejemplo:

Promise.all(numbers.map(number => fetch(`api/double/${number}`))).then(
    responses => {
        // Ahora podemos hacer lo que queramos con el array de respuestas
    }
);

// Oh si preferís usar await:

const responses = await Promise.all(
    numbers.map(number => fetch(`api/double/${number}`))
);
// Ahora podemos hacer lo que queramos con el array de respuestas
Enter fullscreen mode Exit fullscreen mode

Saludos!

Collapse
kevingo710 profile image
kevingo710 Author

Gracias por tus comentarios y ejemplos tomo tu corrección en la comparación de map y forEach para mejorar y aclarar el ejemplo, y perfecto podemos envolver el map en una Promise para usar async/await