Супер простая задача. Превратить числа в отрицательные

Рейтинг: -2Ответов: 2Опубликовано: 13.08.2023

Я не могу понять в чем ошибка. Я вроде сделал всё правильно. Но задачу не принимают как сделана правильно. Где ошибка?

Задача: В этом простом задании вам дается число, и вы должны сделать его отрицательным. Но, может быть, это число уже отрицательное? Число уже может быть отрицательным, и в этом случае никаких изменений не требуется. Ноль (0) не проверяется на наличие какого-либо определенного знака. Отрицательные нули не имеют никакого математического смысла. Я сделал 2 варианта, ни один не подходит.

function makeNegative(num) {
if (num >= 0) {return num;} 
else {num * -1;};
return num;
function makeNegative(num) {
    if (num <= 0) {return num;} 
    else {num => num * -1;}
    return num;
};

Ответы

▲ 1

Странная конструкция num => num * -1; - возвращайте результат.

function makeNegative(num) {
  if (num <= 0) {
    return num;
  } else {
    return num * -1;
  }
};

console.log(makeNegative(10));
console.log(makeNegative(0));
console.log(makeNegative(-4));

Ну и функцию можно упростить, отрицательного нуля не существует в js, он будет обычным 0 в любом случае.

function makeNegative(num) {
  return Math.abs(num) * -1;
};

console.log(makeNegative(10));
console.log(makeNegative(0));
console.log(makeNegative(-4));

▲ 0

Вариант с Math.min():

function makeNegative(num) {
    return Math.min(num,-num);
}

[1,-5,7,0,14,-100500,7878].forEach(x=>console.info(`${x} >> ${makeNegative(x)}`))

С тернарным оператором:

function makeNegative(num) {
    return num<0?num:-num;
}

[1,-5,7,0,14,-100500,7878].forEach(x=>console.info(`${x} >> ${makeNegative(x)}`))

C Math.sign():

function makeNegative(num) {
    return -num * Math.sign(num);
}

[1, -5, 7, 0, 14, -100500, 7878].forEach(x => console.info(`${x} >> ${makeNegative(x)}`))