1

why does this not work?

function phoneticLookup(val) {
 var result = "";
var lookup = {
"alpha": "Adams",
"bravo": "Boston",
"charlie": "Chicago",
"delta": "Denver",
"echo": "Easy",
"foxtrot": "Frank"
};
result = lookup.val;
return result;
}
phoneticLookup("charlie");

but this does

function phoneticLookup(val) {
 var result = "";
var lookup = {
"alpha": "Adams",
"bravo": "Boston",
"charlie": "Chicago",
"delta": "Denver",
"echo": "Easy",
"foxtrot": "Frank"
};
result = lookup[val];
return result;
}
phoneticLookup("charlie");

Why is it that using dot operation not work with dynamic input when accessing objects?

earthyearth
  • 15
  • 1
  • 5

2 Answers2

0

lookup.val looks for val key inside lookup which doesn't exist thats why it doesn't work, you need to do lookup.charlie. Also, lookup[val] = lookup['charlie'] so it works.

Dij
  • 9,761
  • 4
  • 18
  • 35
-1

There is no val named property in your object. When you try to access object.val, it is look for val named property in your object via fluent language.

As you pass dynamically property name. The second one is working as it is try to access property via string name.

sangram parmar
  • 8,462
  • 2
  • 23
  • 47