FAQ: Code Challenges: JavaScript Fundamentals - toEmoticon()

This community-built FAQ covers the “toEmoticon()” exercise from the lesson “Code Challenges: JavaScript Fundamentals”.

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

Web Development

FAQs on the exercise toEmoticon()

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!

Hi Guys, what is the problem with my code below …

// Write your function here:
let toEmoticon = () => {
switch(toEmoticon) {
case ‘shrug’:
return ‘|{"}|’;
break;
case ‘smiley face’:
return ‘:)’;
break;
case ‘frowny face’:
return ‘:(’;
break;
case ‘winky face’:
return ‘;)’;
break;
case ‘heart’:
return ‘<3’;
break;
default:
return ‘|(~)|’;
}
};

console.log(toEmoticon(‘shrug’));
console.log(toEmoticon(‘shrug’));
console.log(toEmoticon(‘smiley face’));

Output is…

|(~)|
|(~)|
|(~)|

Why ??

The problem is the switch condition.

What your saying here is that you check what the function toEmoticon() is equal to. Since it will always be a function it will go to the default case.

If you want to use the input as the condition you would need to tell this to the function like so:
let toEmoticon = (input) => {
after that you can use input as check in your switch condition.

switch(input) {
	case 'shrug':
		return '|{"}|';
		break;
	case 'smiley face':
		return ':)';
		break;
	case 'frowny face':
		return ':(';
		break;
	case 'winky face':
		return ';)';
		break;
	case 'heart':
		return '<3';
		break;
	default:
		return '|(~)|';
	}

Apologies if I am covering the same ground - but this code is printing the correct answers to the console - and yet the lesson checker is still not marking it correct. Do I have spelling errors somewhere I am not seeing?

This is the error message: If ‘shrug’ is entered, the function should return ‘| {“} |’
It indicates that shrug is not returning the correct response - but I copied and pasted that response from the brief so as to not get it wrong… colour me confused at this point!

Here is the code as I have it:

// Write your function here:
let toEmoticon = (input) => {
switch (input) {
case ‘shrug’:
console.log (’|{"}|’);
break;
case ‘smiley face’:
console.log (’:)’);
break;
case ‘frowny face’:
console.log (’:(’);
break;
case ‘winky face’:
console.log (’;)’);
break;
case ‘heart’:
console.log (’<3’);
break;
default:
console.log (’|(* ~ *)|’);
break;
}
};
// Uncomment the line below when you’re ready to try out your function
console.log(toEmoticon(“whatever”))
// Should print ‘|(* ~ *)|’
console.log(toEmoticon (“shrug”))
// We encourage you to add more function calls of your own to test your code!

What obvious thing am I missing here?

return instead of console.log(), perhaps?

1 Like

I had return in there to start with but took it out because I thought that may be the issue - all the examples in the lessons gave console.log instead of return. I will put it back and try again…

Thanks - not sure why that didn’t work the first time - but I am there now!

1 Like