/* exo fait par moi const getuserinfo = (data) => data.results.forEach(element => { console.log(`${element.name.title} ${element.name.last} ${element.name.first} live in ${element.location.country} \(${element.nat}\), contact at ${element.email}`) }); const user = async() => { try { const resp = await fetch("https://randomuser.me/api?results=10"); const data = await resp.json(resp); console.log(data); } catch (err) { console.error(`Error:${err}`) } } const username = async() => { try { const resp = await fetch("https://randomuser.me/api?results=10"); const data = await resp.json(resp); data.sort((a,b)); getuserinfo(data); } catch (err) { console.error(`Error:${err}`) } } username()*/ /*version async*/ // 1. Affichez les **noms**, le **code pays** ('nat') et l'**email** des utilisateurs // 2. Triez les utilsateurs par sexe // 3. Affichez le drapeau à partir du code pays (`https://restcountries.com/v3.1/alpha/:code`) async function getUsers() { try { // Récupère 10 utilisateurs const response = await fetch('https://randomuser.me/api?results=10'); // Récupère les données JSON const data = await response.json(); // Retourne les résultats const users = data.results; return users.map(user => ({ name: `${user.name.first} ${user.name.last}`, nat: user.nat, email: user.email, gender: user.gender })); } catch (error) { console.error('Erreur récupération des utilisateurs:', error.message); } } async function getCountryInfo(code) { try { // Récupère les informations pour le code pays spécifié const response = await fetch(`https://restcountries.com/v3.1/alpha?codes=${code}`); // Récupère les données JSON const data = await response.json(); // Retourne le résultat (le premier élément du tableau) return data[0]; } catch (error) { console.error(`Erreur lors de la récupération des info pays ${code}:`, error.message); } } async function displayUserInfo() { let users = await getUsers(); // 1. Affichez les noms, le code pays ('nat') et l'email des utilisateurs console.log('Utilisateurs:', users) // 2. Triez les utilisateurs par sexe const sortedUsers = users.sort((a, b) => a.gender.localeCompare(b.gender)); console.log('Utilisateurs triés par sexe:', sortedUsers); // 3. Affichez le drapeau à partir du code pays for (const user of users) { const countryInfo = await getCountryInfo(user.nat); console.log(`Drapeau pour le code pays ${user.nat}: ${countryInfo.flag}`); } } displayUserInfo(); /*version .then*/ function getUsers() { console.log('log 1') setisLoading(true) fetch('https://randomuser.me/api?results=10') .then(response => response.json()) .then(data => { console.log('log 3') const users = data.results; return users.map(user => ({ name: `${user.name.first} ${user.name.last}`, nat: user.nat, email: user.email, gender: user.gender })); }) .catch(error => { console.error('Erreur :', error.message); }) .finally(() => { console.log('log 4') }); console.log('log 2 ') } function getCountryInfo(code) { return fetch(`https://restcountries.com/v3.1/alpha?codes=${code}`) .then(response => response.json()) .then(data => data[0]) .catch(error => { console.error(`Erreur lors de la récupération des informations pour le code pays ${code}:`, error.message); }); } function displayUserInfo() { getUsers() .then(users => { // 1. Affichez les noms, le code pays ('nat') et l'email des utilisateurs console.log('Utilisateurs:', users); // 2. Triez les utilisateurs par sexe const sortedUsers = users.sort((a, b) => a.gender.localeCompare(b.gender)); console.log('Utilisateurs triés par sexe:', sortedUsers); // 3. Affichez le drapeau à partir du code pays const countryPromises = users.map(user => { return getCountryInfo(user.nat).then(countryInfo => { console.log(`Drapeau pour le code pays ${user.nat}: ${countryInfo.flag}`); }); }); return Promise.all(countryPromises); }) .catch(error => { console.error('Erreur lors de l\'affichage des informations utilisateur:', error.message); }); } displayUserInfo();