File size: 1,750 Bytes
5f541e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
let pokemonList = [];

async function loadPokemon() {
    const promises = [];
    // Fetch data for Pokémon #1 to #251
    for (let i = 1; i <= 251; i++) {
        promises.push(fetch(`https://pokeapi.co/api/v2/pokemon/${i}`).then(res => res.json()));
    }
    
    const pokemonData = await Promise.all(promises);
    pokemonList = pokemonData.map((data, index) => ({
        number: String(index + 1).padStart(3, '0'), // e.g., "001"
        name: data.name,
        sprite: data.sprites.versions['generation-ii'].crystal.front_default // Animated Crystal sprite
    }));

    // Populate the list
    const ul = document.getElementById('pokemon-list');
    pokemonList.forEach(pokemon => {
        const li = document.createElement('li');
        li.textContent = `#${pokemon.number} - ${pokemon.name}`;
        li.dataset.number = pokemon.number;
        ul.appendChild(li);
    });
}

document.getElementById('pokemon-list').addEventListener('click', function(event) {
    if (event.target.tagName === 'LI') {
        const number = event.target.dataset.number;
        const pokemon = pokemonList.find(p => p.number === number);
        if (pokemon) {
            document.getElementById('pokemon-sprite').src = pokemon.sprite;
            document.getElementById('pokemon-name').textContent = `#${pokemon.number} ${pokemon.name}`;
        }
    }
});

async function init() {
    await loadPokemon();
    // Display the first Pokémon (Bulbasaur) by default
    if (pokemonList.length > 0) {
        const firstPokemon = pokemonList[0];
        document.getElementById('pokemon-sprite').src = firstPokemon.sprite;
        document.getElementById('pokemon-name').textContent = `#${firstPokemon.number} ${firstPokemon.name}`;
    }
}

init();