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 51 52 53 54 55 56 57 58 59
| <!DOCTYPE html> <html lang="en">
<head> <meta charset="UTF-8"> </head>
<body> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> <script> const characterKeywords = ['Spider-Man', 'Batman', 'Superman', 'Naruto', 'Goku', 'Iron Man', 'Captain America', 'Thor', 'Wonder Woman', 'Black Widow', 'Hulk', 'Loki', 'Sasuke', 'Itachi', 'Gon Freecss', 'Killua Zoldyck', 'Ichigo Kurosaki', 'Rukia Kuchiki', 'Light Yagami', 'L', 'Eren Yeager', 'Mikasa Ackerman', 'Armin Arlert', 'Sailor Moon', 'Tuxedo Mask', 'Vegeta', 'Piccolo', 'Gohan', 'Trunks', 'Frieza', 'Cell', 'Majin Buu', 'Alucard', 'Inuyasha', 'Kagome Higurashi', 'Sango', 'Miroku', 'Edward Elric', 'Alphonse Elric', 'Winry Rockbell', 'Natsu Dragneel', 'Lucy Heartfilia', 'Gray Fullbuster', 'Erza Scarlet', 'Luffy', 'Zoro', 'Nami', 'Usopp', 'Sanji', 'Chopper', 'Robin', 'Franky', 'Brook', 'Asta', 'Yuno', 'Noelle Silva', 'Deku', 'Bakugo', 'Todoroki'];
let usernames = []; let iterationCount = 0; const maxIterations = 20; const minValidUsers = 10;
async function iterateAndValidate() { if (iterationCount >= maxIterations || usernames.length >= minValidUsers) { return; } let username = ''; const randomKeyword = characterKeywords[Math.floor(Math.random() * characterKeywords.length)]; username = `${randomKeyword}`;
try { const response = await axios.get(`https://api.github.com/users/${username}`); usernames.push(username); } catch (error) { } iterationCount++; return iterateAndValidate(); }
iterateAndValidate().then(() => { const userInfoPromises = usernames.map(username => axios.get(`https://api.github.com/users/${username}`)); return Promise.all(userInfoPromises); }).then(responses => { const totalFollowers = responses.reduce((acc, response) => acc + response.data.followers, 0); const averageFollowers = totalFollowers / responses.length; console.log(`平均粉丝数:${averageFollowers}`);
const popularUsers = responses.filter(response => response.data.followers > averageFollowers); console.log('粉丝数高于平均的用户:'); popularUsers.forEach(user => console.log(user.data.login));
const userInfoDiv = document.createElement('div'); userInfoDiv.innerHTML = `<p>平均粉丝数:${averageFollowers}</p><p>粉丝数高于平均的用户:${popularUsers.map(user => user.data.login).join(', ')}</p>`; document.body.appendChild(userInfoDiv); }).catch(error => { console.error('发生错误:', error); }); </script> </body>
</html>
|