Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMelinda Biber
4,124 Pointshow to return an array ?
Hi,
Got a bit stuck with the syntax this one... Do I need to create an array first? Do I need to put a function after .each and then .push the values into the array I've created previously? Can't I do it in one step?
function isValidEmail(argument) {
if (argument.indexOf("@") != -1){
return true;
}
else
return false;
}
function requiredValues() {
return $(".required").each().val()
}
2 Answers
Jason Anello
Courses Plus Student 94,610 PointsHi Melinda,
The .each()
method takes a function as it's argument. So you need to pass a function in. In this case, an anonymous function.
The method will then iterate over each of the matched elements and that function will be called so you can perform some action on each one. In this case, you want to get the value of the required field and push it onto an array so you can later return that array when you've finished iterating over all the matched elements.
So yes, you would need to create an array first to hold these values. Then push each of the values onto the array. And finally return the array.
Post back here if you get stuck on the implementation details.
Kevin Lozandier
Courses Plus Student 53,747 PointsHi, Melinda Biber:
If you want me to return an entire array (to manipulate later) You merely pass in the name of the array.
It's a different situation if you want to visually output the values of an array to the DOM. Is that what you what you meant instead?
Jason Anello
Courses Plus Student 94,610 PointsJason Anello
Courses Plus Student 94,610 PointsAlso, you can shorten your first function to this:
You'll see this pattern come up a lot. Where you are basically saying, "if this expression is true, then return true, else the expression was false and you should return false" .
Since the expression
email.indexOf('@') !== -1
is going to evaluate to true or false you can simply return the value of that expression. You don't have to explicitly return true or false.Let me know if that doesn't make sense and I'll try to explain it differently. Or maybe someone else can explain it better.