Come dichiarare oggetti nidificati in JavaScript?

Sto cercando di creare un oggetto che contiene un oggetto, quindi, pensare ad esso come un dizionario:

var dictionaries = {};
dictionaries.english_to_french =
{
 {english:"hello",french:"bonjour"},
 {english:"i want",french:"je veux"},
 {english:"bla",french:"le bla"}
};

ma dà l’errore Uncaught SyntaxError: Unexpected token {
che cosa sto facendo di sbagliato?

Grazie !

Modifica

Mi dispiace di non chiarire quello che voglio fare.
Modificato il codice di cui sopra.

  • dictionaries.english_to_french = {english:"hello",french:"bonjour"}
  • La specifica di un ObjectLiteral è una lettura utile.
InformationsquelleAutor jeff | 2013-07-22

 

2 Replies
  1. 5

    Si sta cercando di dare all’oggetto un immobile, e che la proprietà un singolo oggetto:

    dictionaries.english_to_french =
      {english:"hello",french:"bonjour"}
    ;

    Non avete bisogno di un extra { }. Si potrebbe dichiarare tutto in una volta:

    var dictionaries = {
      english_to_french: {
        english: "hello", french: "bonjour"
      }
    };

    Vorrei suggerire che un formato migliore per il tuo dizionari potrebbe essere:

    var dictionaries = {
      english_to_french: {
        "hello": "bonjour",
        "chicken": "poulet", //? something like that
        "Englishman": "rosbif"
      }
    };

    Che modo è possibile cercare parole direttamente, senza dover cercare. Si potrebbe quindi creare il dizionario inverso da:

    dictionaries.french_to_english = function(dict) {
      var rv = {};
      for (var eword in dict)
        rv[dict[eword]] = eword;
      return rv;
    }(dictionaries.english_to_french);
    • Anche se ho misspecified quello che voglio, hai capito e il 3 ° esempio è quello di cui ho bisogno. Spero funzioni 🙂
  2. 0

    Per nido di due o più oggetti, gli oggetti abbiano un attributo assegnato a loro. Per esempio,

    {
        "hello":{
            "english":"hello",
            "french":"bonjour",
            "portuguese":"ola"
        },
        "good day":{...},
        "how are you":{...}
    }

    “ciao” all’inizio dell’oggetto sarebbe l’attributo. Quindi l’oggetto è il suo valore. Quindi, in questo modo è possibile accedere all’oggetto accedendo suo attributo. Basta mettere un oggetto in un oggetto non funziona. Ecco perché si sta per ottenere il vostro errore.

Lascia un commento