我需要编写一个带有参数的函数。如果参数除以2为NaN,则返回“ FLYING NOCTURNAL MAMMAL MAN!”。否则,它将返回参数除以2的结果。我感觉我正在尝试的东西非常接近。任何帮助将不胜感激!谢谢。
这是我正在尝试的:
nananan = (num) => {
if(num/2 == isNaN(num) || isNaN(num)) {
return "FLYING NOCTURNAL MAMMAL MAN!";
} else {
return num;
}
}
答案 0 :(得分:2)
因此以下代码应该有效
nananan = (num) => {
if(isNaN(num)) {
return "FLYING NOCTURNAL MAMMAL MAN!";
} else {
return num/2;
}
}
console.log(nananan()); //now its NAN
console.log(nananan('adf')); //now its NAN
console.log(nananan(1)); //now its not a NAN
console.log(nananan(-1)); //now its not a NAN
因此,这里的逻辑是num/2
仅在num本身是NAN的情况下才是NAN。那么为什么只检查isNaN(num/2)
就应该isNaN(num)
呢?
答案 1 :(得分:2)
nan = (num) => {
if (isNaN(num/2)) return "FLYING NOCTURNAL MAMMAL MAN!"
else return num/2
}
console.log(nan(2))
console.log(nan('a'))
答案 2 :(得分:1)
您可以使用conditional ternary ?
operator使其更加简洁:
const nananan = num => isNaN(num) ? 'FLYING NOCTURNAL MAMMAL MAN!' : num / 2;
正如我在评论中提到的,虽然isNaN(num / 2)
确实是您要寻找的条件,但只有且isNaN(num)
为真时,它才为真。