Skip to content
This repository has been archived by the owner on Sep 25, 2019. It is now read-only.

ES6: Use Destructuring Assignment to Assign Variables from Objects #213

Closed
nathanhannig opened this issue Aug 2, 2018 · 7 comments · Fixed by #246
Closed

ES6: Use Destructuring Assignment to Assign Variables from Objects #213

nathanhannig opened this issue Aug 2, 2018 · 7 comments · Fixed by #246

Comments

@nathanhannig
Copy link
Member

https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/use-destructuring-assignment-to-assign-variables-from-objects

Decription
Use destructuring to obtain the length of the input string str, and assign the length to len in line.

I believe 'in line' should be a single word: 'inline'

@nathanhannig
Copy link
Member Author

Overall, I feel the challenge is a little confusing as it's examples are based on an object and it is wanting you to complete the challenege on a string.

I think the examples should maybe mention you can use destructuring to grab properties also from strings, or maybe change the challenge to mimic the example a little closer.

@joshalling
Copy link
Member

joshalling commented Aug 2, 2018

While I agree that the instructions are confusing, I feel like it is also good to at least try to apply a concept like this to a more specific situation.

Maybe rather than change the challenge we could add a hint to the guide. That way the camper is still being pushed to figure it out on their own, but they have a place to go for help if they get stuck.

Thoughts?

@nathanhannig
Copy link
Member Author

nathanhannig commented Aug 3, 2018

Yeah I think it is important as I never thought of pulling length property of a string through destructuring.

We should probably say you can also destructure built-in property values from objects as well

const arr =  [1, 2, 3];
const { length } = arr;
console.log(length); //3

Here is a forum post of complaints: https://forum.freecodecamp.org/t/beta-feedback-es6-confusing-challenge-description-destructuring-assignment/172303

@joshalling
Copy link
Member

I think you're right, as it would help to avoid the frustration described in that post. I was just worried about there being too much hand holding through this challenge. Your solution above is good because it still forces the camper to apply the reassignment of length to len.

@johnkennedy9147
Copy link
Contributor

I think this is a poorly written challenge. It is confusing as it relies on campers having an understanding of the difference between string primitives and string objects and how JavaScript automatically converts primitives to objects in order to apply methods or lookup properties.

Given we don't seem to cover these facets of strings in the curriculum prior to this challenge it is unfair to expect them to figure this out in a challenge that is supposed to be about learning destructuring objects.

I think we should change the challenge to explicitly use an object.

@joshalling
Copy link
Member

@johnkennedy9147 In that case, we would need to update the the tests and contents of this challenge. Could we do something similar the next challenge that uses a nested object? For example:

const AVG_TEMPERATURES = {
  today: 77.5,
  tomorrow: 79
};

function getTempOfTmrw(avgTemperatures) {
  "use strict";
  // change code below this line
  const tempOfTomorrow = undefined; // change this line
  // change code above this line
  return tempOfTomorrow;
}

console.log(getTempOfTmrw(AVG_TEMPERATURES)); // should be 79

joshalling added a commit to joshalling/curriculum that referenced this issue Aug 13, 2018
raisedadead pushed a commit that referenced this issue Sep 20, 2018
# [3.2.0](v3.1.2...v3.2.0) (2018-09-20)

### Bug Fixes

* **challenges:** a sentence didn't make sense, so I modified it ([3d77920](3d77920)), closes [#18046](https://github.com/freeCodeCamp/curriculum/issues/18046)
* **challenges:** add missing test to check for for css class ([6e42f53](6e42f53)), closes [#254](#254)
* **challenges:** add note at bottom of description in d3 challenge ([c60d332](c60d332)), closes [#17767](https://github.com/freeCodeCamp/curriculum/issues/17767)
* **challenges:** add solution, test to project euler problems ([f572324](f572324))
* **challenges:** add solutions to first 3 debugging challenges ([c2e5794](c2e5794))
* **challenges:** add test to check user is using \W in Regex ([296cf44](296cf44))
* **challenges:** add test to lookahead regex challenge ([e044de4](e044de4)), closes [#209](#209)
* **challenges:** added code tags ([065036b](065036b)), closes [#18054](https://github.com/freeCodeCamp/curriculum/issues/18054)
* **challenges:** added solutions to project euler problems 28, 31 ([5e12499](5e12499))
* **challenges:** adding code tags to description ([57d5b55](57d5b55)), closes [#17911](https://github.com/freeCodeCamp/curriculum/issues/17911)
* **challenges:** adding negative integer to challenge to improve tests ([#211](#211)) ([2adc516](2adc516))
* **challenges:** allow user to comment out undesired code ([72c2407](72c2407))
* **challenges:** challenge description is formatted and concised ([dcd8e45](dcd8e45))
* **challenges:** change challengeType to fix help button ([ddcc661](ddcc661))
* **challenges:** change definition of complementary colors ([#299](#299)) ([c022dff](c022dff))
* **challenges:** check for shorthand character in regex ([#238](#238)) ([0bf8d32](0bf8d32))
* **challenges:** commented output was wrong ([3cb972e](3cb972e))
* **challenges:** converts delete html test to regex ([d80d98d](d80d98d)), closes [#251](#251)
* **challenges:** corrected challenge instructions ([159203a](159203a))
* **challenges:** fix [#17155](https://github.com/freeCodeCamp/curriculum/issues/17155) ([cb21e59](cb21e59))
* **challenges:** fix confusing destructuring es6 challenge ([1a4f6a8](1a4f6a8)), closes [#213](#213)
* **challenges:** fix description in css variable fallback challenge ([bc33a03](bc33a03)), closes [freeCodeCamp/freeCodeCamp#17546](freeCodeCamp/freeCodeCamp#17546)
* **challenges:** fix flex direction row regex ([25ea07e](25ea07e)), closes [#260](#260)
* **challenges:** fix grammar and spelling errors ([#244](#244)) ([b0c0b74](b0c0b74))
* **challenges:** fix grid-gap shorthand regex ([#232](#232)) ([a49f45e](a49f45e)), closes [#229](#229)
* **challenges:** fix grid-gap shorthand regex ([#237](#237)) ([b369fa0](b369fa0)), closes [#229](#229)
* **challenges:** fix regex in a JS challenge ([#257](#257)) ([6058da3](6058da3))
* **challenges:** fix typo in wrap-reverse description ([434ea5c](434ea5c))
* **challenges:** fixed challenge accepted without any new code ([96b39c1](96b39c1)), closes [#198](#198)
* **challenges:** fixed esc chars in managing packages with npm lesson ([6335a15](6335a15))
* **challenges:** fixed tests to check for pre operators ([ded4705](ded4705)), closes [#199](#199)
* **challenges:** fixed typo in algorithms and ds ([31957a4](31957a4))
* **challenges:** Incorrect html closing tag ([a1464f0](a1464f0))
* **challenges:** insufficient objectives for javascript_algorithm/es6/19 ([7707b18](7707b18))
* **challenges:** missing space in code example ([c50cc4e](c50cc4e))
* **challenges:** remove race condition from react lifecycle challenge ([a20ac56](a20ac56))
* **challenges:** removed duplicate css top property ([0a79c58](0a79c58))
* **challenges:** rephrased wording in applied visual design ([#268](#268)) ([d560d58](d560d58))
* **challenges:** replaced em tags with code tags ([68daaf7](68daaf7)), closes [#18048](https://github.com/freeCodeCamp/curriculum/issues/18048)
* **challenges:** reword test text and improve test accuracy ([f834a98](f834a98))
* **challenges:** small edit to correct sematic issues ([322bf80](322bf80))
* clickjacking challenge description ([037990c](037990c))
* **challenges:** spelling and grammar errors addressed ([8f17adf](8f17adf))
* **challenges:** typo ([4f7faba](4f7faba))
* **challenges:** update test and add solution for DS challenge ([d1b2075](d1b2075)), closes [#164](#164)
* **challenges:** Update test to include whitespace ([#272](#272)) ([77689f4](77689f4)), closes [#271](#271)
* **schema:** change schema and unpack script ([b014b23](b014b23))

### Features

* **challenges:** add browser fallback challenge ([b090e8b](b090e8b)), closes [freeCodeCamp/freeCodeCamp#17546](freeCodeCamp/freeCodeCamp#17546)
@raisedadead
Copy link
Member

🎉 This issue has been resolved in version 3.2.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

beaucarnes pushed a commit to beaucarnes/curriculum that referenced this issue Sep 20, 2018
# [3.2.0](freeCodeCamp/curriculum@v3.1.2...v3.2.0) (2018-09-20)

### Bug Fixes

* **challenges:** a sentence didn't make sense, so I modified it ([3d77920](freeCodeCamp@3d77920)), closes [#18046](https://github.com/freeCodeCamp/curriculum/issues/18046)
* **challenges:** add missing test to check for for css class ([6e42f53](freeCodeCamp@6e42f53)), closes [freeCodeCamp#254](freeCodeCamp#254)
* **challenges:** add note at bottom of description in d3 challenge ([c60d332](freeCodeCamp@c60d332)), closes [#17767](https://github.com/freeCodeCamp/curriculum/issues/17767)
* **challenges:** add solution, test to project euler problems ([f572324](freeCodeCamp@f572324))
* **challenges:** add solutions to first 3 debugging challenges ([c2e5794](freeCodeCamp@c2e5794))
* **challenges:** add test to check user is using \W in Regex ([296cf44](freeCodeCamp@296cf44))
* **challenges:** add test to lookahead regex challenge ([e044de4](freeCodeCamp@e044de4)), closes [freeCodeCamp#209](freeCodeCamp#209)
* **challenges:** added code tags ([065036b](freeCodeCamp@065036b)), closes [#18054](https://github.com/freeCodeCamp/curriculum/issues/18054)
* **challenges:** added solutions to project euler problems 28, 31 ([5e12499](freeCodeCamp@5e12499))
* **challenges:** adding code tags to description ([57d5b55](freeCodeCamp@57d5b55)), closes [#17911](https://github.com/freeCodeCamp/curriculum/issues/17911)
* **challenges:** adding negative integer to challenge to improve tests ([freeCodeCamp#211](freeCodeCamp#211)) ([2adc516](freeCodeCamp@2adc516))
* **challenges:** allow user to comment out undesired code ([72c2407](freeCodeCamp@72c2407))
* **challenges:** challenge description is formatted and concised ([dcd8e45](freeCodeCamp@dcd8e45))
* **challenges:** change challengeType to fix help button ([ddcc661](freeCodeCamp@ddcc661))
* **challenges:** change definition of complementary colors ([freeCodeCamp#299](freeCodeCamp#299)) ([c022dff](freeCodeCamp@c022dff))
* **challenges:** check for shorthand character in regex ([freeCodeCamp#238](freeCodeCamp#238)) ([0bf8d32](freeCodeCamp@0bf8d32))
* **challenges:** commented output was wrong ([3cb972e](freeCodeCamp@3cb972e))
* **challenges:** converts delete html test to regex ([d80d98d](freeCodeCamp@d80d98d)), closes [freeCodeCamp#251](freeCodeCamp#251)
* **challenges:** corrected challenge instructions ([159203a](freeCodeCamp@159203a))
* **challenges:** fix [#17155](https://github.com/freeCodeCamp/curriculum/issues/17155) ([cb21e59](freeCodeCamp@cb21e59))
* **challenges:** fix confusing destructuring es6 challenge ([1a4f6a8](freeCodeCamp@1a4f6a8)), closes [freeCodeCamp#213](freeCodeCamp#213)
* **challenges:** fix description in css variable fallback challenge ([bc33a03](freeCodeCamp@bc33a03)), closes [freeCodeCamp/freeCodeCamp#17546](freeCodeCamp/freeCodeCamp#17546)
* **challenges:** fix flex direction row regex ([25ea07e](freeCodeCamp@25ea07e)), closes [freeCodeCamp#260](freeCodeCamp#260)
* **challenges:** fix grammar and spelling errors ([freeCodeCamp#244](freeCodeCamp#244)) ([b0c0b74](freeCodeCamp@b0c0b74))
* **challenges:** fix grid-gap shorthand regex ([freeCodeCamp#232](freeCodeCamp#232)) ([a49f45e](freeCodeCamp@a49f45e)), closes [freeCodeCamp#229](freeCodeCamp#229)
* **challenges:** fix grid-gap shorthand regex ([freeCodeCamp#237](freeCodeCamp#237)) ([b369fa0](freeCodeCamp@b369fa0)), closes [freeCodeCamp#229](freeCodeCamp#229)
* **challenges:** fix regex in a JS challenge ([freeCodeCamp#257](freeCodeCamp#257)) ([6058da3](freeCodeCamp@6058da3))
* **challenges:** fix typo in wrap-reverse description ([434ea5c](freeCodeCamp@434ea5c))
* **challenges:** fixed challenge accepted without any new code ([96b39c1](freeCodeCamp@96b39c1)), closes [freeCodeCamp#198](freeCodeCamp#198)
* **challenges:** fixed esc chars in managing packages with npm lesson ([6335a15](freeCodeCamp@6335a15))
* **challenges:** fixed tests to check for pre operators ([ded4705](freeCodeCamp@ded4705)), closes [freeCodeCamp#199](freeCodeCamp#199)
* **challenges:** fixed typo in algorithms and ds ([31957a4](freeCodeCamp@31957a4))
* **challenges:** Incorrect html closing tag ([a1464f0](freeCodeCamp@a1464f0))
* **challenges:** insufficient objectives for javascript_algorithm/es6/19 ([7707b18](freeCodeCamp@7707b18))
* **challenges:** missing space in code example ([c50cc4e](freeCodeCamp@c50cc4e))
* **challenges:** remove race condition from react lifecycle challenge ([a20ac56](freeCodeCamp@a20ac56))
* **challenges:** removed duplicate css top property ([0a79c58](freeCodeCamp@0a79c58))
* **challenges:** rephrased wording in applied visual design ([freeCodeCamp#268](freeCodeCamp#268)) ([d560d58](freeCodeCamp@d560d58))
* **challenges:** replaced em tags with code tags ([68daaf7](freeCodeCamp@68daaf7)), closes [#18048](https://github.com/freeCodeCamp/curriculum/issues/18048)
* **challenges:** reword test text and improve test accuracy ([f834a98](freeCodeCamp@f834a98))
* **challenges:** small edit to correct sematic issues ([322bf80](freeCodeCamp@322bf80))
* clickjacking challenge description ([037990c](freeCodeCamp@037990c))
* **challenges:** spelling and grammar errors addressed ([8f17adf](freeCodeCamp@8f17adf))
* **challenges:** typo ([4f7faba](freeCodeCamp@4f7faba))
* **challenges:** update test and add solution for DS challenge ([d1b2075](freeCodeCamp@d1b2075)), closes [freeCodeCamp#164](freeCodeCamp#164)
* **challenges:** Update test to include whitespace ([freeCodeCamp#272](freeCodeCamp#272)) ([77689f4](freeCodeCamp@77689f4)), closes [freeCodeCamp#271](freeCodeCamp#271)
* **schema:** change schema and unpack script ([b014b23](freeCodeCamp@b014b23))

### Features

* **challenges:** add browser fallback challenge ([b090e8b](freeCodeCamp@b090e8b)), closes [freeCodeCamp/freeCodeCamp#17546](freeCodeCamp/freeCodeCamp#17546)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants