* fix: strip user code to improve tests * fix: removed closing section tag messing up tests
2.7 KiB
2.7 KiB
id, title, challengeType, forumTopicId
id | title | challengeType | forumTopicId |
---|---|---|---|
5cfa550e84205a357704ccb6 | Use Destructuring Assignment to Extract Values from Objects | 1 | 301216 |
Description
Consider the following ES5 code:
const user = { name: 'John Doe', age: 34 };
const name = user.name; // name = 'John Doe'
const age = user.age; // age = 34
Here's an equivalent assignment statement using the ES6 destructuring syntax:
const { name, age } = user;
// name = 'John Doe', age = 34
Here, the name
and age
variables will be created and assigned the values of their respective values from the user
object. You can see how much cleaner this is.
You can extract as many or few values from the object as you want.
Instructions
today
and tomorrow
the values of today
and tomorrow
from the HIGH_TEMPERATURES
object.
Tests
tests:
- text: You should remove the ES5 assignment syntax.
testString: assert(!removeJSComments(code).match(/today\s*=\s*HIGH_TEMPERATURES\.(today|tomorrow)/g))
- text: You should use destructuring to create the <code>today</code> variable.
testString: assert(removeJSComments(code).match(/(var|let|const)\s*{\s*(today[^}]*|[^,]*,\s*today)\s*}\s*=\s*HIGH_TEMPERATURES(;|\s+|\/\/)/g));
- text: You should use destructuring to create the <code>tomorrow</code> variable.
testString: assert(removeJSComments(code).match(/(var|let|const)\s*{\s*(tomorrow[^}]*|[^,]*,\s*tomorrow)\s*}\s*=\s*HIGH_TEMPERATURES(;|\s+|\/\/)/g));
- text: <code>today</code> should be equal to <code>77</code> and <code>tomorrow</code> should be equal to <code>80</code>.
testString: assert(today === 77 && tomorrow === 80);
Challenge Seed
const HIGH_TEMPERATURES = {
yesterday: 75,
today: 77,
tomorrow: 80
};
// Only change code below this line
const today = HIGH_TEMPERATURES.today;
const tomorrow = HIGH_TEMPERATURES.tomorrow;
// Only change code above this line
After Test
const removeJSComments = str => str.replace(/\/\*[\s\S]*?\*\/|\/\/.*$/gm, '');
Solution
const HIGH_TEMPERATURES = {
yesterday: 75,
today: 77,
tomorrow: 80
};
const { today, tomorrow } = HIGH_TEMPERATURES;