JS - How to loop based on data from an array?

Asked

Viewed 28 times

-1

Good, I have the following JS array in my code:

var Boletins = 
{
    id:1, items:
    [
        {
            "#": "1",
            "Data": "19 a 25 de Março de 2021",
            "Região": "região de Trás-Os-Montes e Alto Douro",
            "Niveis": "muito elevados",
            "PoleneArvore": "cipreste, pinheiro",
            "PoleneErva": "urtiga, gramíneas"
        },
    id:2, items:
        [
            {
                "#": "10",
                "Data": "26 de Março a 1 de Abril de 2021",
                "Região": "região de Trás-Os-Montes e Alto Douro",
                "Niveis": "muito elevados",
                "PoleneArvore": "plátano, cipreste, pinheiro, carvalhos"
            }]}

I wish I could create an HTML Div for each of the unique id, in this case it goes to id:14 but I’m having doubts and errors in creating the loop.

for (let num in Boletins.id){
    htmlText += '<div class="divBoletim">';    
    htmlText += '<p> Boletim </p>';           
    htmlText += '<h5>ver mais...</h5>';      
    htmlText += '</div>';
}      
$('body').append(htmlText); 

However, my code misses the loop and does not create the Divs for each id present in the array. I appreciate the help you can give me.

1 answer

-1

This structure you sent should be an array of objects and it’s not, if it were an array of objects it would be something like this that you should do:

Its structure:

const Boletins = [
{
    id: 1,
    items: [{
            "#": "1",
            "Data": "19 a 25 de Março de 2021",
            "Região": "região de Trás-Os-Montes e Alto Douro",
            "Niveis": "muito elevados",
            "PoleneArvore": "cipreste, pinheiro",
            "PoleneErva": "urtiga, gramíneas"
 }]}, {
    id:2,
    items: [{
                "#": "10",
                "Data": "26 de Março a 1 de Abril de 2021",
                "Região": "região de Trás-Os-Montes e Alto Douro",
                "Niveis": "muito elevados",
                "PoleneArvore": "plátano, cipreste, pinheiro, carvalhos"
}]}];

Then you can make a map: Boletins.map(bol => bol.items) or any loop type that traverses this array (for of, for, foreach, etc...).

Browser other questions tagged

You are not signed in. Login or sign up in order to post.