Question: # --description-- <del> Sometimes it is useful to check if the property of a given object exists or not. We can use the `.hasOwnProperty(propname)` method of objects to determine if that object has the given property name. `.hasOwnProperty()` returns `true` or `false` if the property is found or not. </del> <ins> To check if a property on a given object exists or not, you can use the `.hasOwnProperty()` method. `someObject.hasOwnProperty(someProperty)` returns `true` or `false` depending on if the property is found on the object or not. </ins> **Example** ```js <del> const myObj = { top: "hat", bottom: "pants" }; </del> <ins> function checkForProperty(object, property) { return object.hasOwnProperty(property); } </ins> <del> myObj.hasOwnProperty("top"); myObj.hasOwnProperty("middle"); </del> <ins> checkForProperty({ top: 'hat', bottom: 'pants' }, 'top'); // true checkForProperty({ top: 'hat', bottom: 'pants' }, 'middle'); // false </ins> ``` <del> The first `hasOwnProperty` returns `true`, while the second returns `false`. </del> <ins> The first `checkForProperty` function call returns `true`, while the second returns `false`. </ins> # --instructions-- <del> Modify the function `checkObj` to test if an object passed to the function (`obj`) contains a specific property (`checkProp`). If the property is found, return that property's value. If not, return `"Not Found"`. </del> <ins> Modify the function `checkObj` to test if the object passed to the function parameter `obj` contains the specific property passed to the function parameter `checkProp`. If the property passed to `checkProp` is found on `obj`, return that property's value. If not, return `Not Found`. </ins> # --hints--

A lot of campers do not understand they have to use the parameters and keep creating an object inside the function. I know this is verbose. Not sure if we need an example that uses a function as well: We might also want to add a call to the function in the seed code Campers should understand the function signature with its parameters and use them properly. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22]
I would be fine changing the description to what you have suggested. Might as well. But, this is after many lessons teaching/involving arguments and parameters. Did we not recently spend time removing a bunch of these?
I think so but I'm not entirely sure why? Seeing the function invocation can help in understanding the function definition. I think we are taking it for granted that they should look at the test output to see the invocation when in fact it is just the test status people look at. Yes, they should know better by now, but they don't. In fact, not understanding parameters/arguments is an overall issue we see. It can not have been reinforced properly because we see it all the time. My best guess is that too many of the challenges have premade functions and in not forcing people to write the function definition and invocation campers are left not fully understanding it.
I think they were confusing Campers . Campers would write their function as though only the example call was what was being tested - they hard-coded based on the seed example call.
I guess that makes some sense but that too points to the same issue. There is a disconnect between writing and running the code.
I like the more explicit instructions. I'm not sure if the sample function call is the right band-aid for learners not understanding what a function call does?
Do you mean the example function or adding the function call to the seed code? I believe it can help with pattern recognition. Seeing the definition and invocation in close proximity can help connect the dots between the parameters and arguments.
There's a non-insignificant number of learners who don't seem to understand much about how a function call works.

I'm not sure that giving more examples of the thing they don't understand will target the underlying reason of why they don't understand it. The problem is though, I'm not sure why the idea of a function call's arguments giving values to the parameters is such a mysterious idea for some of the learners.
Because not having the definition and invocation in close proximity throughout the course is part of the underlying problem. The pattern isn't getting reinforced correctly (both through seeing and writing). Not enough functions are written from scratch and we (almost) never require the camper to execute the function with the correct arguments. One exception would be the recursion challenges. The TDD setup is creating a disconnect for beginners and I believe the way the test runner is implemented isn't helping. I have said this before, but I would prefer if the test running was embedded and exposed better in the UI, for example, the way it is on Codewars. It would require explaining the interface in the beginning as it is a bit technical. But the function getting called for the camper is a detail that often is lost until we explain it.


Question: assert.deepEqual(tokenize(testStr2, '&', '@'), res2); ``` <ins> `tokenize('hello^|world|how^are^you^|', '|', '^')` should return `['hello|world', 'howareyou|']` ```js assert.deepEqual(tokenize(testStr3, '|', '^'), res3); ``` </ins> # --seed-- ## --after-user-code--

Hey any more context on this issue? Seems pretty empty to be already opened with the label.
the challenge needs more tests, it's not a high priority thing, that comment has been there for a few years already


Question: To work on the contributing guidelines, you can edit or add files in the `docs` directory [available here](https://github.com/freeCodeCamp/freeCodeCamp/tree/main/docs). When your changes are merged, they will be made available automatically at the documentation site. <ins> When adding a new file to the `docs` directory, you should evaluate if the file should also be added to the sidebar navigation. We typically create a link in the [`_sidebar.md`](_sidebar.md) file for new and independent guides. Alternatively, You may follow the instructions below on creating an internal link for supporting guides. </ins> ### How to create an internal link If you want to create a link targeting a different section of the contributing guidelines, follow this format:

I noticed that the doc describing the process for updating the docs (how-to-work-on-the-docs-) doesn't explicitly say that when adding a brand new doc file, the file should be updated (or evaluated to see if the new file should be listed there). I'm not sure if 100% of new doc files should in fact get to the , but I feel it should be mentioned as a possible area that needs to be looked at when a person is adding a brand new doc file. (ps. About a month ago I created a new doc file for onboarding of mods and the PR was accepted and merged, but no change was made to the because I was unaware of it till just now... I now need to go back to modify this file to 'publish' the new doc) how-to-work-on-the-docs- N/A Update the how-to-work-on-the-docs- to call out the need to evaluate updating the specifically when creating a brand new doc file. No response


Question: "usesMultifileEditor": true, "hasEditableBoundaries": true, "dashedName": "learn-the-date-object-by-building-a-date-formatter", <del> "order": 7, </del> <ins> "order": 8, </ins> "superBlock": "javascript-algorithms-and-data-structures-v8", "challengeOrder": [ {

I was going through the new JS Beta curriculum and when I got to the date formatter project I realized that it probably doesn't really help add any specific knowledge that would be useful in completing the palindrome project. I think the date formatter project being in its current position may even be a hindrance because I think it is better to get people to work on the skills they have learned sooner rather than later. My suggestion is to move the palindrome project ahead of the date formatter project for this reason. N/A N/A No response N/A No response
please assign this to me
issues are not generally assigned, and this issue has not been marked as ready for contributions.
okiee thank you
I agree. That seems like the way to go. A PR which resolves this issue, then, will swap the properties in the meta files for these two projects.


Question: ] }, {  "_id": "5900f3831000cf542c50fe95", "challengeType": 5, "type": "bonfire", "title": "Problem 22: Names scores", "tests": [ "assert.strictEqual(euler22(), 871198282, 'message: euler22() should return 871198282.');" ], "solutions": [], "translations": {}, "challengeSeed": [ "function euler22() {", "  // Good luck!", "  return true;", "}", "", "euler22();" ], "description": [ "Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this value by its alphabetical position in the list to obtain a name score.", "For example, when the list is sorted into alphabetical order, COLIN, which is worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So, COLIN would obtain a score of 938 × 53 = 49714.", "What is the total of all the name scores in the file?" ] }, {  "_id": "5900f3831000cf542c50fe96", "challengeType": 5, "type": "bonfire",

This problem does not work with the freeCodeCamp platform since the description says to use an external file. This is impossible with the platform. After consulting with & it was decided to delete this challenge completely. This needs to be done.
Does this involve just removing the problem from the project-euler- file? I can take this.
Yup! Pretty simple. Just delete the entire problem from project-euler- Thanks for claiming this one.


Question:
"id": "cf1391c1c11feddfaeb4bdef", "title": "Create Decimal Numbers with JavaScript", "description": [  "We can store decimal numbers in variables too. Decimal numbers are sometimes refered to as <dfn>floating point</dfn> numbers or <dfn>floats</dfn>.",   "We can store decimal numbers in variables too. Decimal numbers are sometimes referred to as <dfn>floating point</dfn> numbers or <dfn>floats</dfn>.",  "Note
Not all real numbers can accurately be represented in <dfn>floating point</dfn>. This can lead to rounding errors. Details Here.", "
Instructions
", "Create a variable myDecimal and give it a decimal value."

Challenge has an issue. User Agent is: <codeMozilla/5.0 (Macintosh; Intel Mac OS X ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36</code. Please describe how to reproduce this issue, and include links to screenshots if possible. The word refered should be written with 2 Rs: referred. !


Question: assert(!code.match(/.?[sS]*?splice/g)); ``` <del> The `inputCities` array should not change. </del> <ins> You should not mutate the original array passed to the function. </ins> ```js <del> assert( JSON.stringify(inputCities) === JSON.stringify(['Chicago', 'Delhi', 'Islamabad', 'London', 'Berlin']) ); </del> <ins> assert.deepEqual(_inputCities, ["Chicago", "Delhi", "Islamabad", "London", "Berlin"]); </ins> ``` `nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])` should return `["Chicago", "Delhi", "Islamabad"]`. ```js <del> assert( JSON.stringify( nonMutatingSplice(['Chicago', 'Delhi', 'Islamabad', 'London', 'Berlin']) ) === JSON.stringify(['Chicago', 'Delhi', 'Islamabad']) ); </del> <ins> assert.deepEqual(nonMutatingSplice(_inputCities), ["Chicago", "Delhi", "Islamabad"]); </ins> ``` # --seed--

This code has the comments, but really we shouldn't be using variables in the user code for tests. Rewrite test to use private variable. No response All No response


Question: pm2 logs ``` <del> > [!DANGER] </del> <ins> > [!ATTENTION] </ins> > For client applications, the shell script can't be resurrected between Node.js versions with `pm2 resurrect`. Deploy processes from scratch instead. This should become nicer when we move to a docker based setup. ## Installing and Updating Azure Pipeline Agents

We are currently using the for our Docsify-powered contributing documentation. One of the alert types, , also accepts the keyword to render. We currently render one of these boxes with and four of them with . For consistency sake, we should use the same keyword to render these. IMHO, with the displayed text being "Attention" we should use the keyword, but I wanted to get some feedback before opening this up to first timers. As an alternative, if we prefer the text, we can modify the plugin config to render on the end-user view instead of .
At this time, there are 4 instances of usage of and 1 instance for , I think it would make sense to make it consistent. And seeing that with the displayed being "Attention" I agree on that being the one used.
+1 on making it
I am happy either way. The only reason I came into this is because I am used to the Bootstrap way of naming, and naturally put DANGER.
Alright, I am going to open this up to first timers. A pull request that closes this issue will: Replace all instances of with in the directory Will not modify any of the files in the directory (these will be updated through our translation worfklow) If you are interested in resolving this issue, we recommend starting with our . If you have further questions feel free to join us in our .
Hi, can I try this out?
Sure thing! Let us know if you have any questions :)
Hey Nick, I would like to work on this!
I also thought of that, but as this issue has been already received by someone, let's give them some time! If it is more than a week without no response, you can grab this!
Yup I got that. That's why I commented so if they are unable then I can pick that up


Question: ); ``` <ins> Your app should not serve files from any other folders except from `/public` directory ```js (getUserInput) => $.get(getUserInput('url') + '/server.js').then( (data) => { assert.equal( data?.status + '', 404 + '', 'Your app must serve files only from "public" directory' ); }, (xhr) => { assert.equal( xhr?.status + '', 404 + '', 'Your app must serve files only from "public" directory' ); } ); ``` </ins> # --solutions-- ```js

Challenge can be passed with solution that will serve files from the root folder, not just directory. Ref By using as a path serving static assets, and not giving explicit path to the , the static assets will be served from (root folder in this case) at the (root) path. Since folder is then served where it is expected to be served, this fulfills test requirements: However, using just serves also other files and directories, starting from the root folder. Ie. or . Reasonable solution seems to be adding test that will check if one of the files from root folder (ie. are not served as static assets. To reproduce: replit starter from to , below line : replit on passes works, so is or . Files outside of folder should not be served as static assets. Otherwise the test should fail. No response No response_
Thanks for opening this. This does sound like a reasonable fix. An issue with the label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the


Question: padding: 4vw 15px; } <del> .certification-section { </del> <ins> .certification-section, .faq-section { </ins> padding-inline: 4vw; }

! Frequently asked question segment is not aligned with the previous elements on the homepage to down to frequently asked questions the misalignment of frequently asked questions segment with the previous elements The frequently asked question segment should be aligned with the previous elements of the homepage for a better UI ! Device: Laptop OS: Windows 11 Browser: Brave Version: 1.64.122 No response
This issue is because the Certifications section has extra side padding: We can add a class to the FAQ section, and give it , too. I'm not sure if this change would collide with the changes you're making to the landing page. I'm also wondering if the Certification section being so wide (comparing to the one on /learn) is still desired. If it's not, I think we can take this opportunity to update the section.
Yes, we can standardize all of them. My changes are effecting the landing top section.
Thanks, Ahmad. I'm temporarily blocking this issue until the CSS situation is a little less messy. I'll get back to this and come up with a suggestion after is merged.
We will be making changes to the certification section in the near future, so I think we can keep the scope of this issue to just adding some extra padding to the FAQ section, as suggested here: This issue is open for contribution. We typically do not assign issues. Instead, we accept the most quality contribution followed by the one that is made first. Please make sure you read our as well as our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Happy contributing.


Question: color: var(--danger-color); } <ins> .has-error .form-control, .has-warning .form-control, .has-success .form-control { border-color: var(--quaternary-background); } .has-error .form-control:focus, .has-warning .form-control:focus, .has-success .form-control:focus { border-color: var(--tertiary-color); } </ins> .panel-primary { border-color: var(--primary-color); }

Describe the bug Some of the input boxes (Email Settings and Your Internet Presence at least) get the old green border when valid inputs are entered. To Reproduce Steps to reproduce the behavior: to down to 'Your Internet Presence' below 'Twitter' on something else to remove focus the green border. Expected behavior The border should fit with the current colour scheme. Screenshots !
Hey there! I could handle this! :slightlysmilingface:
Thanks Feel free to submit a PR when you're ready.
Hi I had tested this on all input boxes in setting page. Affected input are only in Email Settings and Internet Presence like you described. The green border is caused by Bootstrap default class . I also had overridden color changes caused by another Bootstrap default classes which is and . The focus state was actually also affected but it is harder to see because the border became dark green (which is quite hard to distinguish with dark gray in general). I had fixed that too. I had tested my fix both on day and night mode. In night mode, border color on normal and focus state is hard to see but it should be correct with and . I am also sure that accessibility is not negatively affected even though there are no longer border color changes, because the input label is still able to change color correctly based on previous validation result classes
I tried out your PR and it looks great! Before we go ahead with that I would like your thoughts on a couple of things. Firstly, are you getting the appropriate error and warning classes applied? Testing locally I don't seem to be. Secondly, what do you think about inverting the input boxes in night mode? i.e. dark background + light text to fit in with the rest of the aesthetic.
Thanks for testing it :) I realized about those two points you mentioned when I was working with this issue, I intended to create several new issues about it and another accessibility issue. Yes the client validation for email settings and internet presence is all over the place and need some improvements. Border color for focus state on input boxes with night mode is also hard to see. Inverting some colors looks like a good idea. Now that this issue is already closed, let's move the discussion to new issues. I will mention you when it have been created.


Question: "challengeEntryPoint": "meetBonfire("You can do this!");" }, { <ins> "_id": "a202eed8fc186c8434cb6d61", "name": "Reverse a String", "difficulty": "1.01", "tests": [ "expect(reverseString('hello')).to.be.a('String');", "expect(reverseString('hello')).to.equal('olleh');", "expect(reverseString('Howdy')).to.equal('ydwoH');", "expect(reverseString('Greetings from Earth')).to.equal('htraE morf sgniteerG');" ], "description": [ "Reverse the provided string.", "You may need to turn the string into an array before you can reverse it.", "Your result must be a string." ], "challengeEntryPoint": "reverseString('hello');", "challengeSeed": "function reverseString(str) {n  return str;rn}" }, { "_id": "a302f7aae1aa3152a5b413bc", "name": "Factorialize a Number", "tests": [ "expect(factorialize(5)).to.be.a("Number");", "expect(factorialize(5)).to.equal(120);", "expect(factorialize(10)).to.equal(3628800);", "expect(factorialize(20)).to.equal(2432902008176640000);" ], "difficulty": "1.02", "description": [ "Return the factorial of the provided integer.", "If the integer is represented with the letter n, a factorial is the product of all positive integers less than or equal to n.", "Factorials are often represented with the shorthand notation n!", "For example: 5! = 1 * 2 * 3 * 4 * 5 = 120f" ], "challengeSeed": "function factorialize(num) {n  return  num;rn}", "challengeEntryPoint": "factorialize(5);" }, { </ins> "_id" : "aaa48de84e1ecc7c742e1124", "name": "Check for Palindromes", <del> "difficulty": "1", </del> <ins> "difficulty": "1.03", </ins> "description": [ "Return 'true' if a given string is a palindrome.", "A palindrome is a word or sentence that's spelled the same way both forward and backward, ignoring punctuation and case.",

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --The test requires a multi-line comment of the form . However, the test fails if additional ` characters are present at the beginning or the end of the text contained within the comment. Some examples : The regular expression for the corresponding test needs to be updated. Browser Name: Google Chrome Browser Version: 60+ Operating System: Ubuntu 18.04 !
Hi, I would like to have a go to fix this problem
That's good, please read .
Test fails if multiline style comment includes either / File: Line: 33 this regex is the problem

When I attempt to Run the tests for the code I submitted for Roman Numerals Converter, the page freezes and I cannot solve the issue until I clear the cashe of my browser. Help!
I have the same issue. My browser complains about a long running script and then bails out.
Ok, I figured this one out... if you use the solution in the Gritter chat, that solution will cause a never ending loop, because of the while expression (while numCopy 0 - which is always true btw). This never ending loop will freeze your browser. Moreover, as I lately discovered, the solution there only covers very few of the cases that we need to test to pass the Bonfire. So back to the drawing board, people!
Leaving this open as a bug for someone to fix the solution in the wiki to one that works with the new test cases.


Question: <del> import { Button, Panel } from '@freecodecamp/react-bootstrap'; </del> import React from 'react'; import { connect } from 'react-redux'; import { bindActionCreators, Dispatch } from 'redux'; import { useTranslation } from 'react-i18next'; <ins> import { Panel, Button } from '@freecodecamp/ui'; </ins> import { openModal } from '../../redux/actions'; import Spacer from '../../../../components/helpers/spacer'; import SurveyModal from './survey-modal';

<img width="810" alt="image" src="" all the trophy challenges night theme to the exam page UI to be legible. No response Browser: Chrome <details<summaryLight theme is fine</summary<img width="742" alt="image" src=""</details
An issue with the label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the
Hey I would like to work on this. Can you tell me the file that I will be working with?
Hey how can we complete the trophy challenges when working in the dev environment?
To test locally, I just alter the database to have the relevant challenges in the array. That is, I , but I now see we have a flag.
Taking a look at this, I noticed that the flag doesn't work. should fix that. Also, it was that the surveys and exams get seeded when you run the seed command. So to see that alert - you need to seed the trophy challenges, and then delete the collection.
The The fix is to import from instead of and give the component a prop and you should be able to remove the prop. I only played with it for a short time, but I think this will fix it all up.


Question: "title": "Manipulate JavaScript Objects", "difficulty":"9.9823", "description":[  "There are many ways to add and add and remove properties from objects.",   "There are many ways to add and remove properties from objects.",  "For example, we can add properties to objects like this:", "myObject.myProperty = "myValue";", "We can also delete them like this:",

Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. "There are many ways to add and add and remove properties from objects." Should probably read as: "There are many ways to add and remove properties from objects."


Question: try { // Based on the context retrieve the parent // object of the comment (Story/Comment) <del> Context.find( { '_id': data.associatedPost }, function (err, associatedContext) { </del> <ins> Context.find({'_id': data.associatedPost}, function (err, associatedContext) { if (err) { return next(err); } associatedContext = associatedContext.pop(); if (associatedContext) { associatedContext.comments.push(data._id); associatedContext.save(function (err) { if (err) { return next(err); } res.send(true); }); } // Find the author of the parent object User.findOne({'profile.username': associatedContext.author.username}, function(err, recipient) { </ins> if (err) { return next(err); } <del> associatedContext = associatedContext.pop(); if (associatedContext) { associatedContext.comments.push(data._id); associatedContext.save(function (err) { if (err) { return next(err); </del> <ins> // If the emails of both authors differ, // only then proceed with email notification if ( typeof data.author !== 'undefined' && data.author.email && typeof recipient !== 'undefined' && recipient.email && (data.author.email !== recipient.email) ) { var transporter = nodemailer.createTransport({ service: 'Mandrill', auth: { user: secrets.mandrill.user, pass: secrets.mandrill.password </ins> } <del> res.send(true); </del> }); <del> } // Find the author of the parent object User.findOne( { 'profile.username': associatedContext.author.username }, function(err, recipient) { </del> <ins> var mailOptions = { to: recipient.email, from: 'Team@freecodecamp.com', subject: data.author.username + ' replied to your post on Camper News', text: [ 'Just a quick heads-up: ', data.author.username, ' replied to you on Camper News.', 'You can keep this conversation going.', 'Just head back to the discussion here: ', 'http://freecodecamp.com/news/', data.originalStoryLink, '- the Free Code Camp Volunteer Team' ].join('n') }; transporter.sendMail(mailOptions, function (err) { </ins> if (err) { <del> return next(err); </del> <ins> return err; </ins> } <del> // If the emails of both authors differ, // only then proceed with email notification if ( typeof data.author !== 'undefined' && data.author.email && typeof recipient !== 'undefined' && recipient.email && (data.author.email !== recipient.email) ) { var transporter = nodemailer.createTransport({ service: 'Mandrill', auth: { user: secrets.mandrill.user, pass: secrets.mandrill.password } }); var mailOptions = { to: recipient.email, from: 'Team@freecodecamp.com', subject: data.author.username + ' replied to your post on Camper News', text: [ 'Just a quick heads-up: ', data.author.username, ' replied to you on Camper News.', 'You can keep this conversation going.', 'Just head back to the discussion here: ', 'http://freecodecamp.com/news/', data.originalStoryLink, '- the Free Code Camp Volunteer Team' ].join('n') }; transporter.sendMail(mailOptions, function (err) { if (err) { return err; } }); } } ); } ); </del> <ins> }); } }); }); </ins> } catch (e) { <ins> // delete comment </ins> return next(err); } });

Seeing this in production here: solution: Use and/or check for user existence and end early. cc:


Question: - We serve this file as a SPA using `docsify` and GitHub Pages. - The `docsify` script generates the content of `markdown` files in the `docs` directory on demand. - The homepage is generated from the [`_coverpage.md`](_coverpage.md). <del> - the sidebar navigation is generated from [`_sidebar.md`](_sidebar.md). </del> <ins> - The sidebar navigation is generated from [`_sidebar.md`](_sidebar.md). </ins> ### Serving the documentation site locally

I noticed that the doc describing the process for updating the docs (how-to-work-on-the-docs-) doesn't explicitly say that when adding a brand new doc file, the file should be updated (or evaluated to see if the new file should be listed there). I'm not sure if 100% of new doc files should in fact get to the , but I feel it should be mentioned as a possible area that needs to be looked at when a person is adding a brand new doc file. (ps. About a month ago I created a new doc file for onboarding of mods and the PR was accepted and merged, but no change was made to the because I was unaware of it till just now... I now need to go back to modify this file to 'publish' the new doc) how-to-work-on-the-docs- N/A Update the how-to-work-on-the-docs- to call out the need to evaluate updating the specifically when creating a brand new doc file. No response


Question: ] ], "type": "hike",  "challengeType": 6   "challengeType": 6, "nameEs": "JavaScript Lingo: Vectores y objetos", "descriptionEs": [ "Si desea almacenar más de una pieza de información en una variable, puedes hacerlo mediante la creación de un vector o de un objeto.", "** Exención de responsabilidad: Los objetos de JS no son exactamente lo mismo que los objetos en otros lenguajes. Vamos a discutir aquí objetos con respecto a JS. ", "Los vectores son conjuntos de valores entre [corchetes]. Los valores se separan con comas. Cada valor puede ser booleano, cadena, número, o incluso otro vector. A esto último le llamamos vector anidado. A un vector compuesto por vectores de la misma longitud le llamamos matriz. ", "Los objetos son un tipo de datos que pueden verse o comportarse como un vector, en la medida que se trata de más valores almacenados en una variable de una manera organizada. Oirás que un objeto se puede representar en JSON, y con frecuencia cuando haces llamadas a la API de algunos sitios (para obtener información que necesitas mostrar en tu propia página) está será devuelta en JSON. ", "Un ejemplo de la notación de objetos es:  var obj = { 'nombre': 'Briana', 'comida': 'queso', 'perro': 'Maurice'};", "Fíjate que un objeto se encierra entre llaves { ... }, que los diferentes atributos se separan por comas, que cada atributo consta de una palabra llave y de un valor. Por ejemplo son llaves 'nombre', 'comida' y 'perro' y sus respectivos valores son 'Briana', 'queso' y 'Maurice'. En este ejmplo todos los valores fueron cadenas, aunque también son válidos booleanos, números y otros tipos de datos." ]  }, { "id": "56b15f15632298c12f315189",

[ ] JavaScript Lingo: MDN and Documentation [ ] JavaScript Lingo: Value Types [ ] JavaScript Lingo: Variables & camelCase [ ] JavaScript Lingo: Arrays & Objects [ ] JavaScript Lingo: Finding and Indexing Data in Arays [ ] JavaScript Lingo: Manipulating Data [ ] JavaScript Lingo: Math [ ] JavaScript Lingo: Loops [ ] JavaScript Lingo: Regular Expressions
Working on this one


Question:
"The "row" class is applied to a div, and the buttons themselves can be wrapped within it." ], "tests": [  "assert($('div.row:has(button)'), 'Your buttons should all be wrapped within the same div element with the class "row".')",   "assert($('div.row:has(button)').length > 0, 'Your buttons should all be wrapped within the same div element with the class "row".')",  "assert($('div.col-xs-4:has(button)').length > 2, 'Each of your Bootstrap buttons should be wrapped within its own a div element with the class "col-xs-4".')", "assert(editor.match(/</button>/g) && editor.match(/<button/g) && editor.match(/</button>/g).length === editor.match(/<button/g).length, 'Make sure each of your button elements has a closing tag.')", "assert(editor.match(/
/g) && editor.match(/<div/g) && editor.match(/
/g).length === editor.match(/<div/g).length, 'Make sure each of your div elements has a closing tag.')"

Challenge has an issue. Please describe how to reproduce it, and include links to screen shots if possible. I passed the test, but I should not, because I did not wrapped all my buttons within the same div element with the class "row". Screenshot:


Question:
<Helmet> <title>{block} | freeCodeCamp.org</title> </Helmet>
   <Grid className='intro-layout-container'>  <FullWidthRow> <div className='intro-layout'

Describe the bug Unnecessary horizontal page scroll bar. It is not the scrollbar, its the page scroll bar. To Reproduce Steps to reproduce the behavior: to , it does not occur in all pages. for the page horizontal scrollbar (Not the scrollbar). Expected behavior No horizontal scroll bar. Screenshots  Desktop: I have no other env to test. OS: Ubuntu. Browser: chrome, chromium, firefox. Version: not applicable. Additional context This visual problem is generated by: Applied to:


Question: Your `sortSongs` function should use arrow function syntax. ```js <del> assert.match(code, /consts+sortSongss*=s*(s*)s*=>s*{s*}s*;?/) </del> <ins> assert.match(code, /const|lets+sortSongss*=s*(s*)s*=>s*{s*}s*;?/) </ins> ``` # --seed--

The description nor the tests mention the answer needs to use as demonstrated by this forum post here It is clear that the camper understood the assignment. So I don't think they should be penalized for using instead of so the tests should be updated to accept both see explanation above see explanation above No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response


Question: const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/94'); // Fetch from proxy to simulate network delay if (res.ok) { <del> await new Promise(resolve => setTimeout(resolve, 50)); // Brief additional delay to allow UI to update </del> <ins> await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow UI to update </ins> const sprite = document.getElementById('sprite'); assert.isTrue(sprite.src.endsWith('sprites/pokemon/94.png'));

When testing one camper's code it fails some tests unless I increase all the delays to 1000ms, I tested with 500ms but that was not enough. I also saw the example project fail a test but it does pass more consistently (my guess is it is just faster with fewer async functions). To be on the safe side we should have a longer delay. I know 1000ms is a lot but better safe than sorry. Tests: Valid code should not fail because of "timing" issues. No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] Forum:
As this is a bug with a certificate project I the showstopper label.


Question: }, output, tests, <del> submitting, </del> <ins> isSignedIn, </ins> executeChallenge, updateProjectFormValues } = this.props; <del> // TODO: Should be tied to user.isSignedIn const buttonCopy = submitting </del> <ins> const buttonCopy = isSignedIn </ins> ? 'Submit and go to my next challenge' : "I've completed this challenge"; const blockNameTitle = `${blockName} - ${title}`;

Describe the bug Submitting the solution link as "" produces an error. Submitting "" does not. Whenever we submit a solution link "" it is appended with "/api/" so resultant solution gives "Not Found/Timeout error" and the same link submitted without "/" like "" gives solution as accepted. To Reproduce Steps to reproduce the behavior: to on 'solution input box' "https://freecodecamp-" solution gets accepted. "https://freecodecamp-" error Expected behavior This should be tackled as Chrome appends "/" by default to any domain URL you copy, so people who would copy URL from search bars will get URLs appended with "/" hence producing wrong results. This file shows the testString is directly appended with "/api" without checking if the input URL contains "/" at the end or not. Screenshots ! Desktop (please complete the following information): OS: Ubuntu 18 Browser: Google Chrome Version 73.0.3683.75
I am not having this problem - my project will pass the tests with or without the trailing https://fcc-manage-npm- and https://fcc-manage-npm- both pass for me in chrome Can you share a share a screen shot of the error?
Updated
hmm, it's strange that my project will give a good response when that string is appended but not yours https://fcc-manage-npm- - package as response https://freecodecamp- - not found as response not sure what is causing this - the only difference seems to be that I'm using glitch and you're using heroku in fact mine will work like this... https://fcc-manage-npm- so maybe how the two websites process a route or something? can they do that? glitch strips out the extra or something? weird Either way - I think a solution like you suggested would probably work - check if the submitted URL ends in a and remove it if it's there. This same problem probably occurs throughout the whole backend area all over the place.
Weird, would u check with an alternative hosting if the problem persists? If the problem persists the last solution would be stripping the las from input url
Did you try this Above is the actual link processed in the test with an appended , It gives a response with the same as it is shown in the screenshot I posted. So I guess the problem is with the routing of Heroku.


Question: } </style>         ```

We need to replace all images and audio samples for the legacy content with the ones that were just to our freeCodeCamp cdn. Here are all of the files that will need to be updated Here are all of the new asset links


Question: <del> // executes the given code and handles the result var run = function(code) { var result = { input: code, output: null, error: null, type: null }; try { var codeExec = runHidden(code); result.type = typeof codeExec; result.output = stringify(codeExec); } catch(e) { result.error = e.message; } application.remote.output(result); }; // protects even the worker scope from being accessed var runHidden = function(code) { var indexedDB = null; var location = null; var navigator = null; var onerror = null; var onmessage = null; var performance = null; var self = null; var webkitIndexedDB = null; var postMessage = null; var close = null; var openDatabase = null; var openDatabaseSync = null; var webkitRequestFileSystem = null; var webkitRequestFileSystemSync = null; var webkitResolveLocalFileSystemSyncURL = null; var webkitResolveLocalFileSystemURL = null; var addEventListener = null; var dispatchEvent = null; var removeEventListener = null; var dump = null; var onoffline = null; var ononline = null; var importScripts = null; return eval(code); } // converts the output into a string var stringify = function(output) { var result; if (typeof output == 'undefined') { result = 'undefined'; } else if (output === null) { result = 'null'; } else { result = JSON.stringify(output) || output.toString(); } return result; } application.setInterface({run:run}); </del>

the first line in the function says - it wont pass testing unless you change it to Browser Name: Firefox Browser Version: 60.0.1 Operating System: High Sierra ! <hr!
You don't have to it, but because of strict mode it does need to be declared with , , or .
so its missing the then?
That's how I would update it.

i am suspecting another small bug, the next challenge after succesful code run in Bonfire: Chunky Monkey actually points to itself


Question: #mainEditorPanel form.code .form-group.codeMirrorView <del> textarea#codeEditor(autofocus=true) </del> <ins> textarea#codeEditor(autofocus=true, style='display: none;') </ins> script(src='/js/lib/bonfire/bonfireFramework_v0.1.2.js')

On first render, camper see's an unstyled textarea. After, codemirror takes over and hides textarea and adds it's own box. This initial flash is hideous and makes puppies cry.
This has not been fixed on the Reactify branch. And I would prefer styling to be to match codemirror instead of just hiding the text area, as this does not prevent flash to the user.
Does styling it like that really not stop the flash? Everything I'm seeing online says it should. I'm only an amateur though. My thought process on the fix was that codemirror is hiding the textarea through javascript and that the flash is be caused by the script running late/slow/delayed/ and is hiding it after the page has already displayed. So I thought since codemirror is hiding it anyway, why not just hide it from the start to prevent the flash.
There are really two flashes, first the text area is shown then hidden by codemirror. The second flash is happening because codemirror does not render until it is loading in the DOM, which is intentional as codemirror relies heavily on DOM manipulation. While hiding the textarea does stop it from showing to the user on initial load, codemirror still needs to load and the user will see codemirror appear from nowhere, ie flash. After thinking about it, hiding the text area might be the best route on the reactify branch as well. If we were to add classes to mimic the styling of codemirror in the text box, the text box is not codemirror and React will still need to re-render that section of the view which will cause a flash. Ultimately what I would like to get done is to completely rewrite codemirror into a self contained React component so that it can pre-render on the server. But that is neither here nor there. I am willing to close this issue when the same styling is applied to the reactify branch that is currently on master. Would you like to give it a try? You can get some exposure to React at the same time. We are all amateurs until we are not. My philosophy is
Just to make sure, this is the branch your referring to? I tried to edit the .jade files in server/views/bonfire/ but nothing happened.

Finally found that changes were being done from common/components/bonfires/ so it looks like the easiest way would just be to apply the style in under bonfire styling? I don't want to submit anything because I'm not sure if I would be submitting changes to the correct file.
Yes I think that should work just fine. Test locally to make sure it is hidden then submit the PR.
I messed up and commited directly to the repo. Sorry about that. Tested code locally and it worked.
Looks like the text area hide is working! Thanks.


Question: # --description-- <del> Now you need to modify your display text. Change the `innerText` property of the `text` to be `"You enter the store."`. </del> <ins> Now you need to modify your display text. Change the `innerText` property of the `text` variable to be `"You enter the store."`. </ins> # --hints--

In step 41 of the RPG project in the JS beta curriculum, the instruction states: Change the property of the to be "You enter the store.". I believe this sentence is not 100% clear without either removing the word “the” in front of or adding the word “variable” to the right of . As it is, the sentence misleads a bit because it says “the ” which makes it sound like it is referring to some text somewhere, instead of the text variable. so either: Change the property of to be "You enter the store.". or Change the property of the variable to be "You enter the store.". will be clearer. Please look at questions posted on the forum for examples of people missing the point of the request with the current wording. I personally prefer the second one. N/A N/A N/A Example of confused learner:


Question:
const faqItems = t<string, string & FaqItem[]>('landing.faqs'); return (  <Col sm={8} smOffset={2} xs={10} xsOffset={1}>   <Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12} className='faq-section' >
{t('landing.faq')}
 <Spacer size='small' /> {faqItems.map((faq, i) => (

! Frequently asked question segment is not aligned with the previous elements on the homepage to down to frequently asked questions the misalignment of frequently asked questions segment with the previous elements The frequently asked question segment should be aligned with the previous elements of the homepage for a better UI ! Device: Laptop OS: Windows 11 Browser: Brave Version: 1.64.122 No response
This issue is because the Certifications section has extra side padding: We can add a class to the FAQ section, and give it , too. I'm not sure if this change would collide with the changes you're making to the landing page. I'm also wondering if the Certification section being so wide (comparing to the one on /learn) is still desired. If it's not, I think we can take this opportunity to update the section.
Yes, we can standardize all of them. My changes are effecting the landing top section.
Thanks, Ahmad. I'm temporarily blocking this issue until the CSS situation is a little less messy. I'll get back to this and come up with a suggestion after is merged.
We will be making changes to the certification section in the near future, so I think we can keep the scope of this issue to just adding some extra padding to the FAQ section, as suggested here: This issue is open for contribution. We typically do not assign issues. Instead, we accept the most quality contribution followed by the one that is made first. Please make sure you read our as well as our , we prioritize contributors following the instructions in our guides. Join us in our or our if you need help contributing; our moderators will guide you through this. Happy contributing.


Question: .has-success.checkbox label, .has-success.radio-inline label, .has-success.checkbox-inline label { <del> color: rgb(var(--highlight-color)); </del> <ins> color: var(--highlight-color); </ins> } .has-error .help-block,

If I try to select text with my mouse so I can copy/paste it or something - the selected text has the same background as the rest of the page. Making it difficult to see what is selected, and frustrating to try and select, well anything. ! This seems to occur across the entire site. Perhaps it was intentional or something, but I don't think it's a good ux. Note: the text does actually get selected, so you can still copy/paste it. Tested on Chrome and Firefox
Good catch. It'll be this PR: which didn't scope the change to challenge descriptions. I'll put together a quick fix. Edit: nevermind, it's just that has to be passed four values, not two. I don't quite understand how this ever worked.


Question: - text: 'The DisplayMessages component should initialize with a state equal to { input: "", messages: [] }.' testString: 'assert((function() { const mockedComponent = Enzyme.mount(React.createElement(DisplayMessages)); const initialState = mockedComponent.state(); return ( typeof initialState === ''object'' && initialState.input === '''' && initialState.messages.length === 0); })(), ''The DisplayMessages component should initialize with a state equal to { input: "", messages: [] }.'');' - text: The DisplayMessages component should render a div containing an h2 element, a button element, a ul element, and li elements as children.  testString: 'async () => { const mockedComponent = Enzyme.mount(React.createElement(DisplayMessages)); const waitForIt = (fn) => new Promise((resolve, reject) => setTimeout(() => resolve(fn()), 100)); const state = () => { mockedComponent.setState({messages: [''__TEST__MESSAGE'']}); return waitForIt(() => mockedComponent )}; const updated = await state(); assert(updated.find(''div'').length === 1 && updated.find(''h2'').length === 1 && updated.find(''button'').length === 1 && updated.find(''ul'').length === 1, ''The DisplayMessages component should render a div containing an h2 element, a button element, a ul element, and li elements as children.''); }; '   testString: 'async () => { const mockedComponent = Enzyme.mount(React.createElement(DisplayMessages)); const waitForIt = (fn) => new Promise((resolve, reject) => setTimeout(() => resolve(fn()), 100)); const state = () => { mockedComponent.setState({messages: [''__TEST__MESSAGE'']}); return waitForIt(() => mockedComponent )}; const updated = await state(); assert(updated.find(''div'').length === 1 && updated.find(''h2'').length === 1 && updated.find(''button'').length === 1 && updated.find(''ul'').length === 1 && updated.find(''li'').length > 0, ''The DisplayMessages component should render a div containing an h2 element, a button element, a ul element, and li elements as children.''); }; ' - text: .map was used on the messages array. testString: assert(code.match(/this.state.messages.map/g));  - text: The input element should render the value of input in local state. testString: 'async () => { const mockedComponent = Enzyme.mount(React.createElement(DisplayMessages)); const waitForIt = (fn) => new Promise((resolve, reject) => setTimeout(() => resolve(fn()), 100)); const causeChange = (c, v) => c.find(''input'').simulate(''change'', { target: { value: v }}); const testValue = ''__TEST__EVENT__INPUT''; const changed = () => { causeChange(mockedComponent, testValue); return waitForIt(() => mockedComponent )}; const updated = await changed(); assert(updated.find(''input'').props().value === testValue, ''The input element should render the value of input in local state.''); }; ' - text: Calling the method handleChange should update the input value in state to the current input.

So, this code passes all tests: While I haven't anything regarding the rendering of the elements, it still passes the 4th test: "The DisplayMessages component should render a div containing an h2 element, a button element, a ul element, and li elements as children." React and Redux: Manage State Locally First
Just +1ing this issue. I experienced the same thing. I passed with an empty tag. I a comment so if I free up some time I might be able to fix it.
This issue has not yet been resolved. I experienced the same issue. I tried to map the messages array but it says that " is not a function". When I "(typeof )" it says it is an object when it should be an array.
an array is an "object" i.e.: let myArray = [1,2,3,4]; (typeof myArray) This outputs 'object'.
, yeah, thats true. But you cant an "object" now, can you?
I think you misinterpreted my helpful tip... I was not trying to patronize you. Have you since been able to correct your issue? Was it perhaps that your object was not setup properly to access the array? ((message, index) ={ return <li key={index}{message}</li})


Question: Puedes:  - [Ayudarnos creando y editando artúclos de la Guía](#steps-for-creating-and-editing-guide-articles).   - [Ayudarnos creando y editando articulos de la Guía](#steps-for-creating-and-editing-guide-articles).  - [Ayudarnos a revisar Pull Requests para artículos de la guía]() ## Pasos para crear y editar artículos de la Guía 1. 🍴 [Fork este repositorio](https://github.com/freeCodeCamp/freeCodeCamp#fork-destination-box)  2. 👀 Sgiue las normas de controbución expuestas a continuación. 3. 🔧 Propón cambios asombrosos!   2. 👀 Sigue las normas de contribución expuestas a continuación. 3. 🔧 Propóne cambios asombrosos!  4. 📖 Lee la [guía de buenas prácticas de estilo](/docs/style-guide-for-guide-articles).  5. 👉 [Haz una Pull Request](https://github.com/freeCodeCamp/freeCodeCamp/compare)   5. 👉 [Hace un Pull Request](https://github.com/freeCodeCamp/freeCodeCamp/compare)  6. 🎉 Consigue que aprueben tu Pull request - Éxito!  O siemplement [crea un tema](https://github.com/freeCodeCamp/freeCodeCamp/issues) - toda pequeña ayuda cuenta! 😊   O simplemente [crea un tema](https://github.com/freeCodeCamp/freeCodeCamp/issues) - toda pequeña ayuda cuenta! 😊  ### [Sigue estas recomendaciones de nuestra guía de estilo para crear un artículo atractivo](/docs/style-guide-for-guide-articles.md)  ### Crear Pull Request para propoenr cambios   ### Crear Pull Request para proponer cambios   Hay dos formas de proponer cambios en el repositorio tras editar o añadir un articulo:   Hay dos formas de proponer cambios en el repositorio despues de editar o añadir un articulo:   - [Utilizando la interfaz de GitHub en tu navegador](#using-the-github-web-interface-on-your-browser). - [Trabajando en tu ordenador personal](#working-on-your-local-machine) (_recomendado_ para previsualiar cambios).   - [Utilizando el sistema de comunicacion de GitHub en tu navegador](#using-the-github-web-interface-on-your-browser). - [Trabajando en tu maquina local](#working-on-your-local-machine) (_recomendado_ para pre-visualiar cambios).   #### Utilizar la interaz web de GitHub   #### Utilizar el sistema de comunicacion web de GitHub  Mira este vídeo de demostración o sigue los siguientes pasos:  **[TODO]** Update the GIF recording.   **[TODO]** Actualizar la grabacion GIF.   ![GIF showing the GitHub interface steps](#)   ![GIF mostrando los pasos de la interfaz de GitHub](#)   1. Ve a la carpets **"páginas"** (situado en [`guide`](/guide)) donde encontrarás el artículo raiz que quieras editar.   1. Ve a las carpetas **"páginas"** (situado en [`guide`](/guide)) donde encontrarás el artículo raiz que quieras editar.  > Todas las raíces estarán en un archivo index.md  2. Pincha en Editar este archivo y haz tus cambios al archivo en la consola de edición de GitHub.   2. Pincha en Editar este archivo y hace tus cambios al archivo en la consola de edición de GitHub.  > Si el icono aparece gris y te muestra la alerta "Debes estar en una rama para hacer o proponer cambios a este archivo", significa que probablemente estés en la rama de otra persona. En la parte superior izquierda de la página hay una casilla desplegable que dice: "Árbol: #######". Pincha en el desplegable y cambia la rama a maestra. El icono de edición debería estar disponible ahora.

from its english version at from its english version at from its english version at from its english version at from its english version at from its english version at  When you make a PR for this particular issue, do not tag it with instead just reference it with
Hey ! How could I claim so we don't double work? Thanks
Hi ! Actually we just merge in the first PR for open issues. And your comment on this thread is enough. So, its yours. Happy translating.
I just open a PR for
thanks a lot that was fast! Would you be interested in translating these in future as well? If yes, please keep a watch on this thread. We will be updating on the progress often Happy contributing.
Done translating ! My PR is available at ! Thanks for all you do, freeCodeCamp
I have sent a translation proposal for /docs/how-to-work-on-guide- PR Hope it will help!
There is still work pending on this. When you make a PR for this particular issue, do not tag it with instead just reference it with
Hello, I'm starting to help on the translation of the document /how-to-set-up-freecodecamp-
Working on /docs/spanish/how-to-work-on-guide-
Hello, I've improved the file
Hello, Improving docs/spanish/how-to-catch-outgoing-emails-
Hi, I'm improving docs/spanish/how-to-work-on-coding-
Hi, can I help with /docs/spanish/how-to-setup-freecodecamp-
Sorry, I opened a bad PR regarding but already closed it. I found there was still an English part to be translated
Hi! Is there any remaining documentation where I can help translate?
you can improve or fix redaction and spelling errors.
Hi there, It would be good if at the top are checked so we can see what is left to be translated. Thanks
Where I can start helping?
sorry to put it in this issue, but is there any way somebody could help with the pull requests? I mean, there are 5K+ opened already, people are sending them in troves, and I suspect a lot of them are a total crap (Like ) . I guess you opened a Pandora Box with your articule about HacktoberFest.

Hey all, not a translation, but fixes for the language bar of HTML links on the README file for Spanish, and markdown links to the How To guides that everyone has been translating. . or anyone else looking to do translations in Spanish, you could make a copy of the 2 style guides to translate into Spanish from the English version in the doc folder. It looks like those weren't in to the Spanish folder originally or included on this issue. Just leave the title the same, but put it in the Spanish folder
Hola! to all. I believe we should have guidelines for Spanish translations, which include what treatment (formal or informal) to use when referring to actions or the user. For example, Agregue (formal) or Agrega (informal). - I don't know if this kind of things are found in other languages. In the last articles I've read I've seen a mix between formal and informal, and I think we should standardize (I have done it with some articles). I propose to always use informal. Another thing that could be specified in the guidelines is: Challenges translations. Should they be translated? Referrals to types and attributes (which need to be in English for proper coding). For example, type "date" not type "fecha". If there is a guideline already, please let me know, if not, I would be happy to start one (just let me know where to put it). Hey I would like to know your thoughts about this. Thanks to you all and happy coding!
I agree that we should standardize around informal. I agree with you that we should look out for words like "fecha" that have been accidentally translated during our automated translation process.
Hi all I'm not sure if this is the right issue to discuss this, or if I should open a new one. I'm happy to open a new one if that makes things easier to track. I'll keep it here for the moment. What do people think about translating "array" as "arreglo"? I think this is a big mistake that has been repeated since somebody made that bad translation many years ago. As any Spanish speaker know, "arreglo" means "repair" (), and it makes any programming related text even harder to understand.

This is especially true for programming texts because it's full of abstract nouns and things that are not easy to represent in a tangible way. I learned to code in English (mainly FCC and Coursera), and after a while, I stumbled upon a programming text written in Spanish. I couldn't understand what it was talking about until I found out that "arreglo" was the (really bad) translation of "array". Then I could read the text as if I was reading an encoded message that had to be deciphered. I propose that the Spanish version of FreeCodeCamp doesn't carry on with that translation, which is just based on the similarity of the spelling but has nothing to do with the meaning of the words. I think the right term in Spanish is "ristra". According to the : Which basically means: "A group of things placed one after another" They also share all the phonems in "array", with the adittion of /r/ (rolling r) and /t/ in "ristra". I'm open to other candidates, but please, let's take "arreglo" out of the Spanish version. The word "array" has been used in Spanish texts before and even though it's not a Spanish word, I think it's still better than a word that exists with a different meaning. And to be honest, anyone learning how to code will have to become familiar with certain English terms like "list", "function", "import", "scope", etc. [1]: [2]:
Hello guy, I vote for yes, let’s do the change and I think will create a huge impact around of the world! Please let me know if you have more question questions or concerns. Andres Haro Cell: (619) 534-3190
Thanks - I agree that these machine translations need improvement. I encourage you to dig in and start fixing them. Be sure to join if you need help getting set up
There is still work pending on this. When you make a PR for this particular issue, do not tag it with instead just reference it with
Thanks for working on the translations for the "Contributing to freeCodeCamp". Here on we are making contributing to translations for contribution docs ad hoc. You are free to make pull-requests for improving these translations.

We are closing the issue as these do not need tracking per se. You can raise a fresh issue if you find something incorrect in the existing docs.


Question: assert.isFalse(rulesContainer.checkVisibility()); ``` <del> When your `rulesBtn` is clicked again, your `rulesBtn` should say `Show Rules`. </del> <ins> When your `rulesBtn` is clicked again, your `rulesBtn` should say `Show rules`. </ins> ```js <del> assert.strictEqual(rulesBtn.innerText.trim(), "Show Rules"); </del> <ins> assert.strictEqual(rulesBtn.innerText.trim(), "Show rules"); </ins> ``` # --seed--

Initial text of the button is . After step clicking button is expected to change text to , capitalizing the second word. Clicking it again is expected to change text to . Which is too differing from initial capitalization. n/a Capitalization should be consistent throughout the project. Either Show rules and Hide rules; or Show Rules and Hide Rules. No response n/a No response
We will do this option


Question: ], [ "http://i.imgur.com/FEImaEN.gif", <del> "Una imagen mostrandote como pulsar en el enlace inferior para ir a GitHub, llenar los campos necesarios y enviarlos.", </del> <ins> "Una imagen mostrándote como pulsar en el enlace inferior para ir a GitHub, llenar los campos necesarios y enviarlos.", </ins> "Crea una cuenta en GitHub. Asegúrate de usar tu dirección de correo real - GitHub mantendrá esto en privado.", "https://github.com/join" ], [ "http://i.imgur.com/ALN6zPK.gif", <del> "Un gif mostrandote como pulsar en la imagen de perfil en la esquina superior derecha de GitHub. Sube una foto tuya o continuaras usando la imagen de pixeles generada automáticamente. Entonces llena los campos restantes y haz clic en envíar.", "En la esquina superior derecha pulsa sobre la imagen de pixeles, entonces selecciona configuraciones. Sube una imagen tuya. Una foto de tu cara es mejor. Así es como tus compañeros campistas te verán en nuestras salas de chat, así que toma tu mejor ángulo. Puedes añadir tu ciudad y tu nombre si lo deseas.", </del> <ins> "Un gif mostrándote como pulsar en la imagen de perfil en la esquina superior derecha de GitHub. Sube una foto tuya o continuaras usando la imagen de píxeles generada automáticamente. Entonces llena los campos restantes y haz clic en enviar.", "En la esquina superior derecha pulsa sobre la imagen de píxeles, entonces selecciona configuraciones. Sube una imagen tuya. Una foto de tu cara es mejor. Así es como tus compañeros campistas te verán en nuestras salas de chat, así que toma tu mejor ángulo. Puedes añadir tu ciudad y tu nombre si lo deseas.", </ins> "https://github.com/settings/profile" ], [ "http://i.imgur.com/pYk0wOk.gif", <del> "Un gif mostrandote como puedes dar una estrella a un repositorio de GitHub.", </del> <ins> "Un gif mostrándote como puedes dar una estrella a un repositorio de GitHub.", </ins> "Ve al repositorio de código libre de Free Code Camp y dale una "estrella". Las "estrellas" son el equivalente en GitHub de los "me gusta".", "https://github.com/freecodecamp/freecodecamp" ], [ "http://i.imgur.com/zwYPeQT.gif", <del> "Un gif mostrandote como pulsar en el enlace inferior para ir a nuestra sala de chat y pulsar en el botón de "iniciar sesión con GitHub". Entonces puedes pulsar en el próximo campo de texto y escribir un mensaje a tus compañeros campistas.", "Ahora que tienes una cuenta de GitHub, puedes unirte a nuestro chat principal al iniciar sesión con GitHub. Presentate diciendo "Hello world!". Cuéntales a los tus compañeros campistas como encontraste Free Code Camp. Además cuéntanos porque deseas aprender a programar.", </del> <ins> "Un gif mostrándote como pulsar en el enlace inferior para ir a nuestra sala de chat y pulsar en el botón de "iniciar sesión con GitHub". Entonces puedes pulsar en el próximo campo de texto y escribir un mensaje a tus compañeros campistas.", "Ahora que tienes una cuenta de GitHub, puedes unirte a nuestro chat principal al iniciar sesión con GitHub. Preséntate diciendo "Hello world!". Cuéntales a los tus compañeros campistas como encontraste Free Code Camp. Además cuéntanos porque deseas aprender a programar.", </ins> "https://gitter.im/FreeCodeCamp/FreeCodeCamp" ], [ "http://i.imgur.com/Ecs5XAd.gif", <del> "Un gif mostrandote como puedes pulsar en el botón de configuraciones en la esquina superior derecha y modificar tus configuraciones de notificaciones.", </del> <ins> "Un gif mostrándote como puedes pulsar en el botón de configuraciones en la esquina superior derecha y modificar tus configuraciones de notificaciones.", </ins> "Nuestras salas de chat son extremadamente activas. Deberías cambiar tus configuraciones para ser notificado únicamente si alguien te menciona.", "" ], [ "http://i.imgur.com/T0bGJPe.gif", <del> "Un gif mostrandote como puedes pulsar en la imagen de perfil de un usuario para iniciar una conversación privada con ese usuario.", </del> <ins> "Un gif mostrándote como puedes pulsar en la imagen de perfil de un usuario para iniciar una conversación privada con ese usuario.", </ins> "Por favor nota que todas nuestras salas de chat son visibles para el público. Si necesitas compartir información privada, como una dirección de correo o un número de teléfono, hazlo en un mensaje privado.", "" ], [ "http://i.imgur.com/vDTMJSh.gif", <del> "Un gif mostrandote que puedes cambiar entre desafíos y nuestras salas de chat.", </del> <ins> "Un gif mostrándote que puedes cambiar entre desafíos y nuestras salas de chat.", </ins> "Mantén nuestra sala de chat abierta mientras trabajas en nuestros desafíos. De esta manera, puedes pedir ayuda si quedas atascado. Además puedes socializar con otros campistas cuando quieras tomar un descanso.", "" ], [ "http://i.imgur.com/WvQvNGN.gif", <del> "Un gif mostrandote como puedes pulsar abajo para descargar una aplicación de chat nativa para tu computadora.", </del> <ins> "Un gif mostrándote como puedes pulsar abajo para descargar una aplicación de chat nativa para tu computadora.", </ins> "También puedes descargar la aplicación de chat para tu computadora o teléfono móvil.", "https://gitter.im/apps" ]

[X] Learn how Free Code Camp Works [X] Create a GitHub Account and Join our Chat Rooms [X] Configure your Code Portfolio [X] Join a Campsite in Your City [X] Learn What to Do If You Get Stuck


Question: readonly?: never; } | { <del> value: string; </del> <ins> value?: string; </ins> onChange?: never; readonly: boolean; } | { <del> value: string; </del> <ins> value?: string; </ins> onChange: (event: React.ChangeEvent<FormControlElement>) => void; readonly?: never; }; export type FormControlProps = React.HTMLAttributes<FormControlElement> & { <del> id?: string; className?: string; </del> testId?: string; componentClass?: 'textarea' | 'input'; <del> placeholder?: string; </del> name?: string; required?: boolean; rows?: number; type?: 'text' | 'email' | 'url'; } & ChangibleValues; <del> export interface FormControlVariationProps { className?: string; children?: React.ReactNode; id?: string; testId?: string; } </del> <ins> export type FormControlVariationProps = Pick< FormControlProps, 'className' | 'children' | 'id' | 'testId' >; </ins>

onChange: func value?: string componentClass?: string placeholder?: string name?: string required?: string rows?: 4 type?: 'text' 'url'FormControl FormControl.Feedback
Form control for chapter: Need to alter the props to account for chapter needs, here is the link to the chakira component
Which prop is being used in the chapter that we are not passing in the component library? Since chapter views are limited, it might be easier to create the components with learn specifications and use those props to control the component. does that make senes?
Instead of checking the chaikra library and comparing it with the current component, I am better off checking chapter itself for prop it's using. for example, in this file we are using and , so I note these down and check if these 2 props are different from the props we are using. depend on how different they are, I may do from the follow: Add new value to existing prop. Add new prop to the component. Do nothing.
Here is what I propose we do. We could continue building the components with the learn spec and ship them. For the second sprint, we collect the Chapter requirements and update the components accordingly.


Question: */`; function ShowClassic({ <del> challengeFiles: reduxChallengeFiles, </del> <ins> challengeFiles, </ins> data: { challengeNode: { challenge: { <del> challengeFiles, </del> <ins> challengeFiles: seedChallengeFiles, </ins> block, title, description,

During development adding or modifying the head or tail code ( and ) don't seem to be updated in the challenge. Tested locally and on gitpod. Steps to reproduce the behavior: /modify the or in challenge. For example one of the steps in the JS curriculum. I was adding function and variables to it, and then was attempting to use them in tests. and wait for challenge to be updated. () the challenge page, or visit it for the first time. running tests, referencing the function/variables from head/tail code, there will be reference errors. Changing head or tail code, should update the challenge to use it. Login status don't seem to affect issue. During changing the code, thinking I might do something incorrectly, there were handful times when challenge was updated with the head/tail code. Not sure what was the exact reason. What makes it stranger is stopping client develop and starting again, is not necessarily solving the problem. At some point I thought that's working to get challenge fully updated, but right now that doesn't seem to work.
I might have seen this as well. I remember trying to save a regex in to use in multiple tests, and it didn't seem to work. Kind of just thought I was using it incorrectly, but maybe this was the issue.
Thanks for the detailed investigation of another tricky bug. It was another example where saved code messes things up. They're always a pain to debug because everyone sees something different, depending on whether or not they have something saved. Hopefully this is the last of them!
What's the most throwing off, that wasn't even code saved manually!
Weird. Is there nothing in your local storage?
Hmm, well there is after running tests. That must have been the point when saving mishap happened.
Oh, that's right. No mystery beyond "how did I forget this?" :face_exhaling:


Question: .docsify-copy-code-button { font-size: 0.7em !important; } <ins> /****** Anchor Headings ******/ a.anchor { padding-top: 48px; } .markdown-section h2 { margin: 0 0 0.8em; } </ins>

!
Sample URL:
, I am trying to work on the docs locally, and I have cloned the latest push of the repo, but my docs do not have the navbar. Am I missing something about running the docs locally?
See:
If you have installed and set up freeCodeCamp locally, you can simply do: which should prompt a URL at which its serving the site.
Right. I did all that. Turns out, I was syncing with my fork, and not fCC's.


Question: right for you. The following editors are all cross-platform and free to use or evaluate.  ## Sublime Text ![Sublime Text Icon](//discourse-user-assets.s3.amazonaws.com/original/2X/1/1249e18855b9c9ef177e636e6c4e308b4877bf2d.png)   ## Sublime Text   ![Sublime Text Screenshot](//discourse-user-assets.s3.amazonaws.com/original/2X/6/63f774c31a7b1a439bcef9d11e95463b6998310e.png)   ![Sublime Text Screenshot](https://i.imgur.com/Jk2aJod.png)  Sublime Text is a very popular editor that has been around since 2008. There are many options and extensions available,

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: There are many broken image links and the Visual Studio Code icon is way too large. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: n/a Browser Version: n/a Operating System: n/a If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !
I can work on this.
I can work on this.
has already submitted a PR which will most likely be accepted to resolve this issue. We have a backlog of PRs, so it will be a while before it gets merged. There is no need to create any additional PRs for this issue at this time. PRs are merged in the order they are received. Thank you.


Question: title: Source Code Editors --- <del> ##Source Code Editors </del> <ins> ## Source Code Editors </ins> Source code editors are the programs that allow for code creation and editing. Any text editor can be used to write code. But dedicated code

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: There are many broken image links and the Visual Studio Code icon is way too large. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: n/a Browser Version: n/a Operating System: n/a If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): !
I can work on this.
I can work on this.
has already submitted a PR which will most likely be accepted to resolve this issue. We have a backlog of PRs, so it will be a while before it gets merged. There is no need to create any additional PRs for this issue at this time. PRs are merged in the order they are received. Thank you.


Question: bsSize='large' onHide={handleSolutionModalHide} show={isOpen} <ins> size='lg' </ins> > <Modal.Header closeButton={true}> <Modal.Title id='solution-viewer-modal-title'>

The modal for viewing code solutions on the timeline page is more narrow than all the other modals. to view -code for one of the new RWD cert projects narrow modal modal -click view -project wider modal to the same two modals, they're both the wide version All of them to be the wide version
It's simple. Because the "modal-lg" class is not present in the code along with "modal-dialog" class. Can I add this here and take the issue please?
Go for it
Hi Tom, Its my first open source contribution. I have made the change in my local copy and it is working. I have it in my forked repo here - Can you please help me out and guide me on who approves the change?
Hey Here's page from contributing guidelines covering basics of opening pull request - Join us in or if you need help contributing, our moderators will guide you through this. Happy contributing.
hey , I have sent a pull request regarding the issue Thanks for the help


Question: ```js assert( (function () { <del> const initialState = store.getState(); store.dispatch(incAction()); const incState = store.getState(); </del> <ins> const initialState = _store.getState(); _store.dispatch(incAction()); const incState = _store.getState(); </ins> return initialState + 1 === incState; })() );

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --<!-- Add a link to the coding challenge with the problem. -- <!-- Copy and paste the code from the editor that you used in between the back-ticks below: --<!-- Add a clear and concise description of what you expected to happen. --This should be accepted as a correct answer, as it solves the challenge. <!-- Please complete the following information. --- Device: PC OS: Windows 10 Browser: Firefox Version: 97.0.1 <!-- Add any other context about the problem here. --The problem arises if the user tries to test their Redux store functionality After checking the source code of the challenge, the problem seems to be the method used to check if user initiated state correctly or not found in This is resulting in a false assert because the user has modified their state (with Tests) I don't know of a way to assert that the user initialized state other than the way mentioned above Maybe add a note that the user should remove their tests before checking their answer? Sorry if this was mentioned before, but I didn't find it so decided to open the issue.
Rather than adding note, more convenient might be creating new store during the test, off the , and checking initial state of that one.
I agree with gikf's suggestion here. We could create an section under and declare a which we could pass to the tests.


Question: # --description-- <del> The variables you have assigned have all had values that are numbers. JavaScript has multiple different data types. The next one you will be use is the <dfn>string</dfn>. Strings are used to store things like words or text. Strings are surrounded with double quotes, single quotes, or backticks. Here is an example of declaring a variable with a string: </del> <ins> The variables you have assigned have all had values that are numbers. JavaScript has multiple different data types. The next one you will use is the <dfn>string</dfn>. Strings are used to store things like words or text. Strings are surrounded with double quotes, single quotes, or backticks. Here is an example of declaring a variable with a string: </ins> ```js let developer = "Naomi";

There is a typo in Step 45, the word is misspelled. Here is the typo it should be in step 26, is incorrect grammar, it should be or If you would like to fix this issue, please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution, followed by the one that is made first. Happy contributing.
Is anybody working on this issue? if not I would like too
Hello.. I would like to contribute to this issue.. Kindly assign me the same


Question: # --description-- <del> Remember that arrays have a `.some()` method. Use the `.some()` method to check if testing your `msg` on any of your `denyList` regular expressions returns `true`. </del> <ins> Arrays have a `.some()` method. Like the `.filter()` method, `.some()` accepts a callback function which should take an element of the array as the argument. The `.some()` method will return `true` if the callback function returns `true` for at least one element in the array. Here is an example of a `.some()` method call to check if any element in the array is an uppercase letter. ```js const arr = ["A", "b", "C"]; arr.some(letter => letter === letter.toUpperCase()); ``` Use the `.some()` method to check if testing your `msg` on any of your `denyList` regular expressions returns `true`. </ins> Use `regex` as the parameter for the callback function, for clarity.

In the building a spam filter project's step 's instructions, we are told: "Remember that arrays have a .some() method. " However, we cannot remember as it was not taught. In fact it is not actually taught until step 100 of the building a spreadsheet project as far as I'm aware: I suggest that the part of lesson 100 that applies to teaching the some() method be moved into the spam filter project's step 12. N/A Adding the missing lesson for some() before or during step 12 of the building a spam filter project. No response N/A No response
Hello I am a first timer, can i take up this issue? because adding the .some() function explaination to step 12 will solve this issue and i think it will be pretty easy to do that..


Question: timezone ) { let finalChallenge; <del> const updateData = { $push: {} }; </del> <ins> const updateData = {}; </ins> const { timezone: userTimezone, completedChallenges = [] } = user; const oldChallenge = _.find(

Completing projects from the settings page, submitting a url, dose not increment the points a user has. We need to push a new timestamp to the users array.
Hi I can help out with this. Am I correct in thinking that this should be done in the file? If so, I'll look at for some guidance.


Question: ```js const aVisitedColor = new __helpers.CSSHelp(document).getStyle('a:visited')?.getPropertyValue('color'); <del> assert(aVisitedColor === 'grey'); </del> <ins> assert(aVisitedColor === 'grey' || aVisitedColor === 'gray'); </ins> ``` # --seed--

I set the a:visited color to “gray” which changed the link color in the preview pane and even displayed the color picker box in the view with the color gray but when I clicked Check Your Code it didn’t accept my answer. I had to change it to “grey” with an ‘e’, not an ‘a’ to get the Step completed message. Now it does have the word “grey” with an ‘e’ in the directions, but I spell gray with an ‘a’ so that is what I did naturally. Do you want to accept a value of “gray” and “grey” as correct answers or will you only accept “grey”. If you only accept “grey” would it be possible to add a message asking the user to check their spelling? Otherwise, users may get frustrated and confused if they used “gray” and then they don’t understand why the answer is wrong. ! <!-- Please complete the following information. --- Device: [Laptop] OS: [Windows 10] Browser: [brave] Version: [Version 1.33.106 Chromium: 96.0.4664.110 (Official Build) (64-bit)] <!-- Add any other context about the problem here. --


Question: <script src="https://unpkg.com/docsify-pagination/dist/docsify-pagination.min.js"></script> <script src="https://unpkg.com/docsify-remote-markdown/dist/docsify-remote-markdown.min.js"></script> <del> </html> </del>  No newline at end of file <ins> </html> </ins>

Is your feature request related to a problem? Please describe. I noticed that there is a difference between the headers in and . Describe the solution you'd like Everything else is consistent except for the header. A solution would be to have it consistent throughout. Have it display "Learn to code at home" in both links. On the second line. Additional context Add any other context or screenshots about the feature request here. <img width="1095" alt="without home" src="https://user-"<img width="1093" alt="with home" src="https://user-"


Question: const { children, navigate, isSignedIn, ...restProps } = props; return ( <Button <ins> bsStyle='default' className={(restProps.block ? 'btn-cta-big' : '') + ' signup-btn btn-cta'} </ins> href='/signin' onClick={createOnClick(navigate, isSignedIn)} {...restProps} <del> bsStyle='default' className={(restProps.block ? 'btn-cta-big' : '') + ' signup-btn btn-cta'} </del> > {children || 'Sign In'} </Button>

I'm testing beta. Describe the bug When submitting a challenge using Ctrl+Enter it automatically completes also the following challenge. To Reproduce Steps to reproduce the behavior: a logged out user to the first challenge it Ctrl+Enter marks as solved also the following challenge and you can go ahead Expected behavior It should solve the current challenge and present the following one. Screenshots As you can see I can submit multiple challenges: ! Desktop (please complete the following information): OS: Ubuntu Browser Firefox Version 69.0.1 Additional context I've been able to reproduce it on but I could skip only one challenge. On my local dev I managed to skip 4.
I've digged a bit on this issue, and I think the problem is somehow related to this line: As this is triggered also when I'm submitting the finished challenge. If I comment that line out everything works fine, meaning I can Ctrl+Enter to run the tests and submit and the bug disappear. I'm going to dig a bit more, but does that makes any sense to you?
Thanks for testing our beta version and reporting this! You rock. /cc
Thanks It looks like I didn't test the logged out behaviour. so, what do we want to happen for logged out users? The issue I see is that it currently says 'Submit and go to the next challenge', but clearly they can't submit. For now, do we just want them to see the same as logged in users (and quietly not submit)?
Here is what I would do: ! Of course the modal should close as well like you mentioned. The signin button can link to same as the home page CTA. And we could remove from the first button
Turns out it's not working properly even when the user is logged in. I think it's a race condition between and . was quite right, the problem is on that line. It shouldn't be called if the modal is open since it's listening to as well.
yes I think it's with the in the editor and the in the . I can give a further look later if you wish.
Thanks for the offer but I think (with your help!) I've fixed it. It seemed only fair, since I introduced the bug.
Excellent!
Release on its way, should be available within the hour.


Question: User Story #4: When I enter GitHub flavored markdown into the #editor element, the text is rendered as HTML in the #preview element as I type (HINT: You don't need to parse Markdown yourself - you can import the Marked library for this: https://cdnjs.com/libraries/marked). User Story #5: When my markdown previewer first loads, the default text in the #editor field should contain valid markdown that represents at least one of each of the following elements: a header (H1 size), a sub header (H2 size), a link, inline code, a code block, a list item, a blockquote, an image, and bolded text. User Story #6: When my markdown previewer first loads, the default markdown in the #editor field should be rendered as HTML in the #preview element.  Optional Bonus (you do not need to make this test pass): When I click a link rendered by my markdown previewer, the link is opened up in a new tab (HINT: read the Marked.js docs for this one!).  Optional Bonus (you do not need to make this test pass): My markdown previewer interprets carriage returns and renders them as br (line break) elements. You can build your project by forking this CodePen pen. Or you can use this CDN link to run the tests in any environment you like: https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js Once you're done, submit the URL to your working project with all its tests passing.

The Optional bonus User Story was removed from the testable suite because it is no longer relevant. The User Story should also be removed from the web page.
Fixed in


Question: ); ``` <ins> `insertionSort([5, 4, 33, 2, 8])` should return `[2, 4, 5, 8, 33]`. ```js assert.deepEqual(insertionSort([5, 4, 33, 2, 8]), [2, 4, 5, 8, 33]) ``` </ins> `insertionSort` should not use the built-in `.sort()` method. ```js

function insertionSort(array) { for(let i=1; i; i++){ let toInsert = array[i]; let j = i-1; while(j = 0){ if(toInsert < array[j]){ array[j+1] = array[j]; } else{ array[j+1] = toInsert; break; } j-- } (array) } return array; } insertionSort([5, 4, 33, 2, 8]); Will make the challenge pass even though the code is not correct which my example shows. The test in the challenge passes, because by chance the first element in the test array is also the smallest and doesnt have to be changed. So adding a second test array with a first element not being the smallest element would solve that issue. Browser: Chrome
I am able to confirm this bug.
Would either of you like to add the necessary test?
I will defer to for the opportunity to make a contribution. If they do not want to make this change, then I can go ahead and do so.


Question: module.exports = Object.assign(locations, { locale, stripePublicKey, <del> algoliaAppId, algoliaAPIKey </del> <ins> algoliaAppId: !algoliaAppId || algoliaAppId === 'Algolia app id from dashboard' ? null : algoliaAppId, algoliaAPIKey: !algoliaAPIKey || algoliaAPIKey === 'Algolia api key from dashboard' ? null : algoliaAPIKey </ins> });

Is there any reason not to put the real and in ? I reflexively put in a dummy key when I set this up, but now that I revisit this, that seems like a mistake.
Yes, actually it broke the .dev build unsurprisingly , I think noticed it and reported in the team chat. My bad for not catching this previously. The real fix is to ignore and move ahead when the keys are not available are default. We do this with google application credentials.
Oh, I assume it broke the build because .dev isn't using I didn't think of that... So, we should implement the fix and add the public keys to , right?
I was thinking something more along the lines of (example from api-server): I would try to avoid hundreds of contributors hitting the indexes locally. Ideally people should get their own keys. While the key and index is public, it's still not recommended to hit it?
As for the production keys, it's actually fine because the build should fail. I have since the keys in the build pipeline.
One thing: if we don't want contributors spamming search (fair enough!) I think there should be some docs that let people know what's what. Either that search isn't available in development or the steps they need to take to make it work.
I agree. We should add some docs on getting keys, or perhaps creating a test index and sharing that instead


Question: --- title: Use the Conditional (Ternary) Operator --- <ins> ![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ":triangular_flag_on_post:") Remember to use <a>**`Read-Search-Ask`**</a> if you get stuck. Try to pair program ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ":busts_in_silhouette:") and write your own code ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":pencil:") </ins> ## Use the Conditional (Ternary) Operator <del> ### Problem explanation: _Use the `conditional operator` in the `checkEqual` function to check if two numbers are equal or not. The function should return either true or false._ </del> <ins> ### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":checkered_flag:") Problem Explanation: * You need to write a function named `checkEqual`, which checks if the two parameters are equal. * If the parameters are equal, `true` is to be returned else `false` should be returned. ## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ":speech_balloon:") Hint Use ternary operator to check for equality. </ins> <del> #### Hint 1 Remember that the "traditional" `if...else` syntax can be re-written using the conditional operator (`condition ? statement if true : statement if false;`) </del> > _try to solve the problem now_ <del> > </del> <ins> ## Spoiler Alert! </ins> <del> ## Spoiler alert! </del> <ins> ![warning sign](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif) </ins> **Solution ahead!** <del> ## Code solution: </del> ```javascript function checkEqual(a, b) { return a === b ? true : false; } ``` <del> ·  Run code at [repl.it](https://repl.it/@AdrianSkar/Basic-JS-Ternary-operator). ### Code explanation - The function checks if the `condition` before the interrogation sign (`?`) is true, and if so, executes the `true` statement. Otherwise, it returns `false`. ### Resources - ["Conditional (ternary) operator" - *MDN JavaScript reference*](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) </del> <ins> ### Code Explanation: * A function `checkEqual` is declared, it accepts two parameters in variables `a` and `b`. * The `return` statement would return the value of the evaluated ternary expression. * The ternary expression checks if `a` and `b` are equal or not and returns `true` or `false` respectively. </ins>

<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: In a hint for conditional operator shown an invalid solution. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Google Chrome Browser Version: 70.0.3538.102 (64-bit) Operating System: Windows 10 Home for one language, 64-bit If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! There is an assignment operator instead of the equality operator
This was fixed in PR it would soon be pushed to production. I'm fixing the formatting of the file.
As stated above, this has been resolved, but until the changes have been pushed to production, it will still show. Due to it being fixed, I am closing this issue. Thank you.
Hi, Sorry to get back to you on this topic but it seems that the invalid solution is still showing up : [] I am still having an assignment operator instead of the equality one - which works fine. Thank you.
the changes have not been pushed to production yet. The changes will appear once the repository is pushed to production
Ok, thanks.


Question: data-cy='submit-challenge' onClick={() => submitChallenge()} > <del> {isSignedIn ? t('buttons.submit-and-go') : t('buttons.go-to-next')} <span className='hidden-xs'> {isMacOS ? ' (Command + Enter)' : ' (Ctrl + Enter)'} </span> </del> <ins> {buttonText} </ins> </Button> <Spacer size='xxSmall' /> {this.state.downloadURL ? (

We are using the class to conditionally hide some text on mobile screens: This class comes from Bootstrap, which is something we are going to remove (). So instead of using the class, we can use an check, like this (which is also a little more consistent with how we've handled this kind of conditional rendering): Update the file to replace the class with an check. I noticed that we are using multiple methods for mobile device detection, so I think the check should be standardized, and there should be a shared util for this check. But I'm leaving this out of the scope of this issue, and will create a separate issue for it.
We typically do not assign issues. Instead, we accept the first pull request that comprehensively solves the issue. Issues labelled with or are open for contributions. Please make sure you read . We prioritize contributors following the instructions in our guide. Join us in or if you need help contributing - our community will be happy to assist you.
I already have a pull request that technically resolves this. While it is done the same way we did the lower-jaw i.e checks for a desktop instead of being mobile , it does solve the problem and pass the tests.


Question: Your code should use `typeof` in two `console.log()` statements to check the type of the variables. ```js <del> assert(code.match(/console.log(typeof[( ].*)?)/g).length == 2); </del> <ins> assert(code.match(/console.logs*(typeof[( ].*)?)/g).length == 2); </ins> ``` Your code should use `typeof` to check the type of the variable `seven`.

The test regexes don't allow for spaces before the parentheses, which is unnecessarily strict. Same as:
What do you mean by "unnecessarily strict"?
Compare the two code examples — only one passes, while both should. The interpreters don't care about spacing, so neither should these exercises. You can look at how was handled if you want to give it a go.
I'm not wild about relaxing the tests to support irregular/unusual formatting. It's uncommon to stick spaces between the function/method nane and the ()s for the argument list in JS.
People do it, otherwise we wouldn't be careful about it in most tests. I guess my student keeps doing it because it's the norm in natural languages. FCC doesn't teach or enforce style and I'm sure you know code formatting is a major source of bikeshedding anyway. Silly details like this shouldn't get in the way of learning.
If you call a method with a space between the name and parentheses then that method would not work. Why promote bad syntax when learning?
Some people do it but it is really uncommon. Making the code readable to other people is part of getting hired. This just isn't a thing that you see in production code. JS has a bunch of these little things that are technically possible but never used. There is a huge difference between bikeshedding on indentation or semicolons and going out of our way to support baffling, non-standard syntax that nobody uses in professional code. We're made notes about this sort of thing in the past so learners don't get in the habit of writing technically correct but bizzaro code: And all of our examples of using functions follow the basic convention in JS of not jamming extra spaces in there, from the beginning: I don't see why we'd be obligated to support every single non-standard thing that a learner can imagine.
I see here that we seem to be moving towards intentionally supporting users writing confusing syntax. In light of this, we should remove the note here I personally think this is the wrong call, but we should be consistent.
That's demonstrably false. Well, we've already been doing this spacing leniency for ages, so it's not like I'm proposing some novelty. Or anything absurd (your strawman of "every single non-standard thing").

I count uses in between 400-500 of our test asserts, so they're pretty much everywhere. If we wanted to enforce style, we would have tests for that, not letting unrelated tests fail and be opaque at it. It just breaks the learning flow, so I can completely understand why we do it as we do. Forceful automatic code reformatting would also be silly.
We have 400-500 asserts designed to allow spacing inbetween the function name and ()s? Odd.
The spacing leniency is not limited to that one case, of course ...
I agree with but the people who type should get more descriptive fallback error instead because in console it logs and , when the code above is used. maybe changing this to
i think we should run that wrong syntax but at the same time give warning about the syntax begin wrong and also the correct syntax.
Neither syntax is incorrect, one is just less common. There is already wide support for being lax in tests like these. Most recently the discussion was in the previously linked , where the core team weighed in as well. So the main thing that should be done in this bug is just to fix the tests. Other bugs should have their own issues.


Question: When the user clicks on the `Show rules` button, the rules for the game should display on the screen. When they click on the button again, the rules should be hidden. <del> Use an event listener to invert the value of the `isModalShowing` variable, toggle the visibility of the `rulesContainer`, and change the text of the `rulesBtn` to `Show Rules` or `Hide Rules`. </del> <ins> Use an event listener to invert the value of the `isModalShowing` variable, toggle the visibility of the `rulesContainer`, and change the text of the `rulesBtn` to `Show rules` or `Hide rules`. </ins> # --hints--

Initial text of the button is . After step clicking button is expected to change text to , capitalizing the second word. Clicking it again is expected to change text to . Which is too differing from initial capitalization. n/a Capitalization should be consistent throughout the project. Either Show rules and Hide rules; or Show Rules and Hide Rules. No response n/a No response
We will do this option