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
  • 410
  • 10
  • 21

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,711
  • 3
  • 17
  • 34
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,794
  • 1
  • 12
  • 21
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,411
  • 11
  • 28
  • 30