FAQ: Functions - Putting It All Together

Community%20FAQs%20on%20Codecademy%20Exercises

This community-built FAQ covers the “Placholder” exercise from the lesson “Functions”.

Paths and Courses
This exercise can be found in the following Codecademy content:

Learn How to Code

FAQs on the exercise Putting It All Together

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply (reply) below!

Agree with a comment or answer? Like (like) to up-vote the contribution!

Need broader help or resources? Head here.

Looking for motivation to keep learning? Join our wider discussions.

Learn more about how to use this guide.

Found a bug? Report it!

Have a question about your account or billing? Reach out to our customer support team!

None of the above? Find out where to ask other questions here!

Hello, I’m so confused! This is what I have done, but I keep getting an error (“expected variable ‘result’ to be defined”)

// Define the ‘makeSandwich()’ function
function makeSandwich(topping1, topping2) {
sandwich = ‘bread’
sandwich =+ sandwich + ‘topping1’
sandwich =+ sandwich + ‘topping2’
sandwich =+ ‘bread’

result = makeSandwich(‘burger patty’, ‘pickles’)
}

Help please! I really wanna master this so I can move on confidently. Thanks!

2 Likes

All compound assignments are written with the operation first, then assignment.

a += 1

which is the equivalent of,

a = a + 1

The addition takes place first, then the assignment.

Note that when using the augmentation operator we do not repeat the variable on the right hand side.

sandwich = bread
sandwich += topping1

Note also that topping1 and topping2 are variables so we would never write them in quotes.

2 Likes

8 posts were split to a new topic: What does + ',' mean?

Hello,
What if I have 7 “layers” and want to have them flexible and changeable? I was trying this (below) but it returns a sandwich with bread only (“One or more ingredients are not valid”). Can you see the mistake?

topping1 = ‘jelly’
topping2 = ‘pickles’
function makeSandwich(topping1, topping2, topping1, topping2, topping1, topping2, topping1) {
sandwich = ‘bread’ + ‘,’
sandwich += topping1 + ‘,’
sandwich += topping2 + ‘,’
sandwich += topping1 + ‘,’
sandwich += topping2 + ‘,’
sandwich += topping1 + ‘,’
sandwich += topping2 + ‘,’
sandwich += topping1 + ‘,’
sandwich += ‘bread’
return sandwich
}

result = makeSandwich(‘jelly’, ‘pickles’)

Please post a link to the exercise. (Copy the URL in the location bar and paste into a reply.)

Sorry, here it is: https://www.codecademy.com/paths/code-foundations/tracks/learn-how-to-code/modules/bop-ii/lessons/bop-functions/exercises/all-together

1 Like

The parameter variables should all be unique. Work with the two parameters given, topping1 and topping2.

Would someone be able to tell me what’s the reasoning behind writing the function in multiple steps as…

function makeSandwich(topping1, topping2) {
sandwich = ‘bread’ + ‘,’
sandwich += topping1 + ‘,’
sandwich += topping2 + ‘,’
sandwich += ‘bread’
return sandwich
}

…and not as a single row?

function makeSandwich(topping1, topping2) {
sandwich = ‘bread’ + ‘,’ + topping1 + ‘,’ + topping2 + ‘,’ + ‘bread’
return sandwich
}

Is it just to make it easier to read?

Quite possibly, yes. At this point is difficult to say how comfortable the new learner is with concepts such as concatenation.

ES6 gives us a really special tool for constructing a string from literals and variables… The template literal syntax.

function makeSandwich(topping1, topping2) {
    return `bread, ${topping1}, ${topping2}, bread`
}

This will be covered in the lessons on strings and string concatenation so let this slide for the time.

2 Likes

Hi, can someone help me brake down the instructions in { }, I don’t understand the logic behind it :confused:

function makeSandwich(topping1, topping2) {
sandwich = ‘bread’ + ‘,’
sandwich += topping1 + ‘,’
sandwich += topping2 + ‘,’
sandwich += ‘bread’
return sandwich
}

Technically, there is no logic, only inline assignments. The first line in the function block defines a string object, sandwich and assigns the first word concatenated with a comma string character. The next three lines continue the assignment using an assignment operator that extends the string in one step. += is sometimes referred to as an augmentation operator.

The finished result will be string composed of the assignments in all four lines.

console.log(sandwich)
// bread,ham,cheese,bread

Thank you! Made it clear :slight_smile:

1 Like

3 posts were split to a new topic: What does return do?

Hi, I’m having the same problems as kellebelle99,

https://www.codecademy.com/paths/code-foundations/tracks/learn-how-to-code/modules/bop-ii/lessons/bop-functions/exercises/all-together

I tried to running the function that was already set up, but that doesn’t make the burger sandwich so I don’t know where I messed up.

Could someone explain mtf in a different way?

Hello, @dog_geist! Welcome to the forum.
If you wouldn’t mind copying and pasting the code you are having trouble with in a reply to this post we’ll be happy to try to help. Please click on the </> icon before pasting your code, and then paste it in the space indicated. Without seeing the code in question, it is really difficult to speculate what may be wrong.

Hi, thanks for responding, but interestingly enough it works now.

// Define the 'makeSandwich()' function
function makeSandwich(topping1, topping2) {
  sandwich = 'bread' + ','
  sandwich += topping1 + ','
  sandwich += topping2 + ','
  sandwich += 'bread'
  return sandwich
}

// Call the function and store the returned value in 'result'
result = makeSandwich('peanut butter', 'jelly')

It’s very odd, because I did nothing different. At first it wouldn’t even run the default example.

1 Like

I guess we chalk it up as a glitch. Happy coding!

1 Like

Hi midlinder,

I have the same problem as dog_geist. My code is the same as his, but it doesn’t run. I get an error and can’t move on.

Can you please help me?

If your situation is anything like mine, just wait a couple of hours and get back to it.