Using Objects for Lookups difference between bracket and dot notations

Tell us what’s happening:
What is the difference between
result = lookup[val] and result = lookup.val?

I tried result = lookup.val and it did not work but it did when I tried lookup[val].

Your code so far

// Setup
function phoneticLookup(val) {
  var result = "";

  // Only change code below this line
  var lookup={
    "alpha" : "Adams",
    "bravo" : "Boston",
    "charlie": "Chicago",
    "delta" : "Denver",
    "echo" : "Easy",
    "foxtrot" : "Frank",
    "" : undefined
  result = lookup[val];

  // Only change code above this line
  return result;

// Change this value to test

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36.

Link to the challenge:

Your code works for me. What error are you getting?



…looks for a property named val on the lookup object. It will not work because there is no property named val on the object.

val is a parameter, a variable. Its value is dynamic. The variable name (the identifier val) is not itself a property on the object, but the value inside the variable can hold the name (string) of a property.

const getName = 'name';

const users = {
  name: 'John Doe',
  age: 34

// "John Doe"

// 34

// undefined

// undefined