curriculum/challenges/english/blocks/basic-javascript/56533eb9ac21ba0edf2244ca.md
Objects can be thought of as a key/value storage, like a dictionary. If you have tabular data, you can use an object to lookup values rather than a switch statement or an if/else chain. This is most useful when you know that your input data is limited to a certain range.
Here is an example of an article object:
const article = {
"title": "How to create objects in JavaScript",
"link": "https://www.freecodecamp.org/news/a-complete-guide-to-creating-objects-in-javascript-b0e2450655e8/",
"author": "Kaashan Hussain",
"language": "JavaScript",
"tags": "TECHNOLOGY",
"createdAt": "NOVEMBER 28, 2018"
};
const articleAuthor = article["author"];
const articleLink = article["link"];
const value = "title";
const valueLookup = article[value];
articleAuthor is the string Kaashan Hussain, articleLink is the string https://www.freecodecamp.org/news/a-complete-guide-to-creating-objects-in-javascript-b0e2450655e8/, and valueLookup is the string How to create objects in JavaScript.
Convert the switch statement into an object called lookup. Use it to look up val and assign the associated string to the result variable.
phoneticLookup("alpha") should equal the string Adams
assert(phoneticLookup('alpha') === 'Adams');
phoneticLookup("bravo") should equal the string Boston
assert(phoneticLookup('bravo') === 'Boston');
phoneticLookup("charlie") should equal the string Chicago
assert(phoneticLookup('charlie') === 'Chicago');
phoneticLookup("delta") should equal the string Denver
assert(phoneticLookup('delta') === 'Denver');
phoneticLookup("echo") should equal the string Easy
assert(phoneticLookup('echo') === 'Easy');
phoneticLookup("foxtrot") should equal the string Frank
assert(phoneticLookup('foxtrot') === 'Frank');
phoneticLookup("") should equal undefined
assert(typeof phoneticLookup('') === 'undefined');
You should not modify the return statement
assert(__helpers.removeJSComments(code).match(/return\sresult;/));
You should not use case, switch, or if statements
assert(
!/case|switch|if/g.test(__helpers.removeJSComments(code).replace(/([/]{2}.*)|([/][*][^/*]*[*][/])/g, ''))
);
// Setup
function phoneticLookup(val) {
let result = "";
// Only change code below this line
switch(val) {
case "alpha":
result = "Adams";
break;
case "bravo":
result = "Boston";
break;
case "charlie":
result = "Chicago";
break;
case "delta":
result = "Denver";
break;
case "echo":
result = "Easy";
break;
case "foxtrot":
result = "Frank";
}
// Only change code above this line
return result;
}
phoneticLookup("charlie");
function phoneticLookup(val) {
let result = "";
const lookup = {
alpha: "Adams",
bravo: "Boston",
charlie: "Chicago",
delta: "Denver",
echo: "Easy",
foxtrot: "Frank"
};
result = lookup[val];
return result;
}