FAQ: Functions - Putting It All Together

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

There are currently no frequently asked questions associated with this exercise – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this exercise. Ask or answer a question by clicking reply (reply) below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this exercise, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

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!

1 Like

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.

What is the meaning of + ‘,’

9 Likes

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