Ciao a tutti, sto facendo un esercizio ma non ne vengo a capo, principalmente perché non ho capito bene come iterare in una struttura dati tipo hash per selezionare solo alcuni elementi.
Vi mostro il codice che non va:
codice:
const json = `{"giorno": "2018-05-15","menu": {"primi": [{"nome": "Tagliatelle al ragù","ingr":
["pasta all'uovo", "manzo", "salsa pomodoro", "spezie"]}, {"nome": "Pasta al pomodoro","ingr":
["pasta secca", "salsa pomodoro", "spezie"]}],"secondi": [{"nome": "Scaloppina ai funghi", "ingr":
["manzo", "funghi secchi", "besciamella"]}, {"nome": "Stracchino e grissini","ingr": ["formaggio fresco",
"grissini"]}], "dessert": [{"nome": "fiordilatte","ingr": ["latte", "zucchero", "aromi naturali"]},
{"nome": "Kiwi", "ingredienti": ["kiwi"]}]}}`;
const myMenu = JSON.parse(json);
mostraMenu(myMenu);
function mostraMenu(menu) {
for (var i in menu) { //cioè 'primo', 'secondo', 'dessert'
var html="";
html += "<div class='menu'><h2>"+i+"</h2><select>";
for (var j=0; j<menu[i].length; j++) {
html += "<option>"+menu[i][j].nome;
html += "(" + menu[i][j].ingr.join(', ') + ")"; --->> ERRORE SU QUESTA
html += "</option>";
}
html += "</select>";
}
html += "</div><button onclick=‘spedisciMenu()'>Spedisci</button>";
document.getElementById("formMenu").innerHTML=html;
}
L'errore che ottengo sulla riga evidenziata è: Uncaught TypeError: menu[i][j].ingr is undefined.
Presumo ci sia qualcosa che non va nel secondo ciclo for.
Sostanzialmente io passo un oggetto JSON che è praticamente un menu, dove ogni menu è legato al giorno (ogni giorno c'è un menu diverso), in ogni menu ci sono 3 campi: primo, secondo, dessert. Che a loro volta contengono l'elenco delle pietanze proposte (ed ognuna ha un nome ed una lista ingredienti).
Scopo dell'esercizio è: per ogni categoria (primo, secondo, dessert): visualizza un menu a tendina con un elemento per ogni cibo. Di ogni cibo viene mostrato il nome e tra parentesi gli ingredienti.
Grazie a chiunque vorrà aiutarmi.