In JavaScript, objects contain one or more key, value pairs. The key, value pairs are enclosed in a set of curly brackets. Values may be variables, arrays, methods or even another object. The following is an example of an object:
let circle = { radius: 3, color: 'blue', diameter: function () { return this.radius * 2; }; };
The dot . operator is used to access an object property value:
let radius = circle.radius;
Brackets and the key name may also be used:
let radius = circle['radius'];
This way is helpful when creating an object property based on another variable, example:
let colorKey = 'color'; let myColor = 'black'; let car = { year: 1997, price: 12000, make: 'honda', model: 'accord' }; console.log(JSON.stringify(car)); car[colorKey] = myColor; console.log(car[colorKey]); console.log(JSON.stringify(car));
Looping through an object can be done with a for in loop;
for (key in car) { console.log('Key: ' + key + ', value: ' + car[key]); }
or with Object.properties:
Object.keys(car).forEach(function (key) { if (car.hasOwnProperty(key)) { let value = car[key]; console.log('Key: ' + key + ', value: ' + car[key]); } });
I use objects all the time because it's easy to retrieve items from when using a key.
For example, in my vacation road website, I store place types with a list of places for each type.
let resultsMap = { Entertainment: { details: [ 'ABC, 123 Random St., Somewhere, NY', 'DEF, 456 Blue St., Somewhere, NY', 'GHI, 789 Black St., Somewhere, NY' ], markers: [ {id: 1, show: true}, {id: 2, show: false}, {id: 3, show: true} ] }, Hotels: { details: [ 'Marriott, 345 Some St., Somewhere, NY', 'Holiday Inn, 345 Other St., Somewhere, NY', 'Fairfield, 345 Red St., Somewhere, NY' ], markers: [ {id: a, show: true}, {id: b, show: false}, {id: c, show: true} ] } }
Then the list of hotels can be retrieved by doing:
let hotelList = resultsMap['Hotels']; console.log(JSON.stringify(hotelList.details));
Implementation:
Inside the javascript_tutorial.js file created in the JavaScript set up tutorial, add the following lines that are in bold:
// JavaScript Tutorial /* * This file will add JavaScript * to a website. */ (function() { let doc = document; let defaultLocation = [-86.7816, 36.1627]; // longitude, latitude function setLocation(location) { if (location) { let locationElement = doc.getElementById('location'); locationElement.innerHTML = location.city + ', ' + location.region; } } })();
This adds a function that will eventually be called to set the user's location in the html page.
Next, in the js directory containing the javascript_tutorial.js file, create another directory called modules. Inside this directory, create a file called Weather.js. Add the following to Weather.js:
class Weather { // Constructor constructor() { }; getLocation() { let url = 'https://ipinfo.io/json'; let options = { mode : 'cors' }; fetch(url, options) .then(response => response.json()); }; }
This adds a function that will eventually call an API to retrieve the user's location based on their ip address.
The JavaScript tutorial series starts with this post.
(paid links)
More JavaScript
Leave a Reply
You must be logged in to post a comment.