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 <code>switch</code> statement or an <code>if/else</code> chain. This is most useful when you know that your input data is limited to a certain range.
Here is an example of a simple reverse alphabet lookup:
Convert the switch statement into an object called <code>lookup</code>. Use it to look up <code>val</code> and assign the associated string to the <code>result</code> variable.
- text: <code>phoneticLookup("alpha")</code> should equal <code>"Adams"</code>
testString: 'assert(phoneticLookup("alpha") === ''Adams'', ''<code>phoneticLookup("alpha")</code> should equal <code>"Adams"</code>'');'
- text: <code>phoneticLookup("bravo")</code> should equal <code>"Boston"</code>
testString: 'assert(phoneticLookup("bravo") === ''Boston'', ''<code>phoneticLookup("bravo")</code> should equal <code>"Boston"</code>'');'
- text: <code>phoneticLookup("charlie")</code> should equal <code>"Chicago"</code>
testString: 'assert(phoneticLookup("charlie") === ''Chicago'', ''<code>phoneticLookup("charlie")</code> should equal <code>"Chicago"</code>'');'
- text: <code>phoneticLookup("delta")</code> should equal <code>"Denver"</code>
testString: 'assert(phoneticLookup("delta") === ''Denver'', ''<code>phoneticLookup("delta")</code> should equal <code>"Denver"</code>'');'
- text: <code>phoneticLookup("echo")</code> should equal <code>"Easy"</code>
testString: 'assert(phoneticLookup("echo") === ''Easy'', ''<code>phoneticLookup("echo")</code> should equal <code>"Easy"</code>'');'
- text: <code>phoneticLookup("foxtrot")</code> should equal <code>"Frank"</code>
testString: 'assert(phoneticLookup("foxtrot") === ''Frank'', ''<code>phoneticLookup("foxtrot")</code> should equal <code>"Frank"</code>'');'
- text: <code>phoneticLookup("")</code> should equal <code>undefined</code>
testString: 'assert(typeof phoneticLookup("") === ''undefined'', ''<code>phoneticLookup("")</code> should equal <code>undefined</code>'');'
- text: You should not modify the <code>return</code> statement
testString: 'assert(code.match(/return\sresult;/), ''You should not modify the <code>return</code> statement'');'
- text: 'You should not use <code>case</code>, <code>switch</code>, or <code>if</code> statements'
testString: 'assert(!/case|switch|if/g.test(code.replace(/([/]{2}.*)|([/][*][^/*]*[*][/])/g,'''')), ''You should not use <code>case</code>, <code>switch</code>, or <code>if</code> statements''); '