freeCodeCamp/curriculum/challenges/english/02-javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-assign-variables-from-nested-objects.english.md
Amy Lam 914a7c522d Copy edits (#35536)
* Copy edits to Basic JavaScript section

* Copy edits to ES6 section

* Update index.md
2019-03-29 22:06:58 +05:30

2.1 KiB

id, title, challengeType
id title challengeType
587d7b89367417b2b2512b4a Use Destructuring Assignment to Assign Variables from Nested Objects 1

Description

We can similarly destructure nested objects into variables. Consider the following code:
const a = {
  start: { x: 5, y: 6 },
  end: { x: 6, y: -9 }
};
const { start: { x: startX, y: startY }} = a;
console.log(startX, startY); // 5, 6
In the example above, the variable startX is assigned the value of a.start.x.

Instructions

Use destructuring assignment to obtain max of forecast.tomorrow and assign it to maxOfTomorrow.

Tests

tests:
  - text: <code>maxOfTomorrow</code> equals <code>84.6</code>
    testString: assert(getMaxOfTmrw(LOCAL_FORECAST) === 84.6, '<code>maxOfTomorrow</code> equals <code>84.6</code>');
  - text: nested destructuring was used
    testString: getUserInput => assert(getUserInput('index').match(/\{\s*tomorrow\s*:\s*\{\s*max\s*:\s*maxOfTomorrow\s*\}\s*\}\s*=\s*forecast/g),'nested destructuring was used');

Challenge Seed

const LOCAL_FORECAST = {
  today: { min: 72, max: 83 },
  tomorrow: { min: 73.3, max: 84.6 }
};

function getMaxOfTmrw(forecast) {
  "use strict";
  // change code below this line
  const maxOfTomorrow = undefined; // change this line
  // change code above this line
  return maxOfTomorrow;
}

console.log(getMaxOfTmrw(LOCAL_FORECAST)); // should be 84.6

Solution

const LOCAL_FORECAST = {
  today: { min: 72, max: 83 },
  tomorrow: { min: 73.3, max: 84.6 }
};

function getMaxOfTmrw(forecast) {
  "use strict";
  // change code below this line
   const {tomorrow : {max : maxOfTomorrow}} = forecast; // change this line
  // change code above this line
  return maxOfTomorrow;
}

console.log(getMaxOfTmrw(LOCAL_FORECAST)); // should be 84.6