0

I'm trying to get the value of an object in a object but the key value is a variable so I don't know how to have this code working:

var res = 'Hello';
var greetings = {
  'Hello': {'lang':'EN' ,'goodbye': 'Goodbye'},
  'Bonjour': {'lang':'FR', 'goodbye': 'Aurevoir'}
}

Later I want to use this :

greetings.res.lang

to get : 'EN', for now I get 'undefined' because it evaluates the expression greetings.res and not greeting.Hello so it doesn't find it in the list.

EDIT : Thanks for the quick answer guys !

Otor
  • 340
  • 6
  • 20

4 Answers4

5

See How to create a Dictionary with Key/Value pairs

var res = 'Hello';
var greetings = {
  'Hello': {'lang':'EN' ,'goodbye': 'Goodbye'},
  'Bonjour': {'lang':'FR', 'goodbye': 'Aurevoir'}
}

console.log(greetings[res].lang);
Hearner
  • 2,633
  • 2
  • 16
  • 32
1

This should work for you:

var res = 'Hello';
var greetings = {
  'Hello': {'lang':'EN' ,'goodbye': 'Goodbye'},
  'Bonjour': {'lang': 'FR', 'goodbye': 'Aurevoir'}
}

alert(greetings[res].lang);
Neil T
  • 1,259
  • 9
  • 17
0

Use [] when you have dynamic keys:

greetings[res].lang

OR

greetings[res]['lang']
-2

You can access it like this:

greetings[res].lang
Martin
  • 2,351
  • 11
  • 30
  • 29