Reputation: 10944
I'm having problems finding out what's wrong with the code below. I have consulted how to use typeof and switch cases, but I'm lost at this point. Thanks in advance for your advices.
// Write a function that uses switch statements on the
// type of value. If it is a string, return 'str'. If it
// is a number, return 'num'. If it is an object, return
// 'obj'. If it is anything else, return 'other'.
function detectType(value) {
switch (typeof value) {
case string:
return "str";
case number:
return "num";
default:
return "other";
}
}
------------- Update -----------------------------------
Turns out the problem comes from my mistake (or rather oversight) of not following the instructions properly. Thanks again for your help and comments!
Upvotes: 26
Views: 27597
Reputation: 80
typeof
returns a string so you should encase your switch cases between single quotes.
function detectType(value) {
switch (typeof value) {
case 'string': // string should me 'string'
return "string";
case 'number':
return "number";
default:
return "other";
}
}
😉
Upvotes: 1
Reputation: 692
This is the code that will work. I'm going through the codeacademy.com coures also. The issue was with typeOf having mixed casing. It's case sensitive and should be all lowercase: typeof
function detectType(value) {
switch(typeof value){
case "string":
return "str";
case "number":
return "num";
case "object":
return "obj";
default:
return "other";
}
}
Upvotes: 3
Reputation: 2813
This is the code the will work for you:
function detectType(value) {
switch (typeof value) {
case "string":
return "str";
case "number":
return "num";
default:
return "other";
}
}
Upvotes: 1
Reputation: 18219
typeof
returns a string, so it should be
function detectType(value) {
switch (typeof value) {
case 'string':
return "str";
case 'number':
return "num";
default:
return "other";
}
}
Upvotes: 39