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:
L'errore che ottengo sulla riga evidenziata è: Uncaught TypeError: menu[i][j].ingr is undefined.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; }
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.

Rispondi quotando

capita a tutti, molte volte anche hai più bravi. Il tutto sta nel non arrendersi e nella continua pratica, vedo infatti che sei riuscita in qualche modo nell'intento.