freeCodeCamp/curriculum/challenges/english/02-javascript-algorithms-an.../basic-javascript/accessing-nested-objects.en...

2.0 KiB

id title challengeType videoUrl forumTopicId
56533eb9ac21ba0edf2244cc Accessing Nested Objects 1 https://scrimba.com/c/cRnRnfa 16161

Description

The sub-properties of objects can be accessed by chaining together the dot or bracket notation. Here is a nested object:
var ourStorage = {
  "desk": {
    "drawer": "stapler"
  },
  "cabinet": {
    "top drawer": { 
      "folder1": "a file",
      "folder2": "secrets"
    },
    "bottom drawer": "soda"
  }
};
ourStorage.cabinet["top drawer"].folder2;  // "secrets"
ourStorage.desk.drawer; // "stapler"

Instructions

Access the myStorage object and assign the contents of the glove box property to the gloveBoxContents variable. Use dot notation for all properties where possible, otherwise use bracket notation.

Tests

tests:
  - text: <code>gloveBoxContents</code> should equal "maps".
    testString: assert(gloveBoxContents === "maps");
  - text: Your code should use dot and bracket notation to access <code>myStorage</code>.
    testString: assert(/=\s*myStorage\.car\.inside\[\s*("|')glove box\1\s*\]/g.test(code));

Challenge Seed

// Setup
var myStorage = {
  "car": {
    "inside": {
      "glove box": "maps",
      "passenger seat": "crumbs"
     },
    "outside": {
      "trunk": "jack"
    }
  }
};

var gloveBoxContents = undefined; // Change this line

After Test

(function(x) { 
  if(typeof x != 'undefined') { 
    return "gloveBoxContents = " + x;
  }
  return "gloveBoxContents is undefined";
})(gloveBoxContents);

Solution

var myStorage = {
  "car":{
    "inside":{
      "glove box":"maps",
      "passenger seat":"crumbs"
    },
    "outside":{
      "trunk":"jack"
    }
  }
};
var gloveBoxContents = myStorage.car.inside["glove box"];