给出一个数字,该函数必须返回该数字的负数(它可能已经是负数)。为什么在这种情况下三元运算符不起作用?使用if语句有效。
// Does not work
function makeNegative(num) {
num < 0 ? num : -num;
}
// Works
function makeNegative(num) {
if (num < 0) {
return num;
}
return -num;
}
// TEST
console.log(makeNegative(-4)); //-4
console.log(makeNegative(6)); //-6
答案 0 :(得分:3)
您仍然需要return
的值:
function makeNegative(num) {
return num < 0 ? num : -num;
}
如果要使用隐式返回,则需要将函数转换为箭头函数:
const makeNegative = num => num < 0 ? num : -num;
顺便说一句,您可以为此使用负数Math.abs()
:
const alwaysNegative = -Math.abs(num);
答案 1 :(得分:1)
您缺少三元运算符函数中的return语句。像这样尝试:
function makeNegative(num) {
return(num < 0 ? num : -num);
}
答案 2 :(得分:-1)
您需要分配num
,但缺少=
:
function makeNegative(num) {
num = (num < 0) ? num : -num;
}
有关更多信息,您可以签出docs。
编辑:我再次查看了该问题,并给出了这种情况下的用法,这将不起作用。如果您希望将方法应用于没有返回值的数字,那么这将是解决方案,但是在这种情况下,您将寻找return
语句。我将在这里保留我的答案以供他人参考,但这不是@Awscr问题的答案。