Не срабатывает функция в JavaScript
Мне нужно чтобы функция добавляла к числу знак "+", если оно положительное, но она не добавляет ((
function plus(num) {
if (num > 0)
num = '+' + num;
}
plus(a);
console.log(a);
Ответы (2 шт):
Автор решения: Solt
→ Ссылка
Ну вот как-то так.
function plus(num){
if(num > 0){
num = '+' + num;
}
return num;
}
let a = plus(10);
console.log(a);
Автор решения: Stanislav Volodarskiy
→ Ссылка
Не нужно ради внешнего вида менять само значение. Во-первых, это не будет работать, так как значения нельзя изменить внутри функции так, чтобы это стало видно снаружи. Во-вторых, это плохая идея потому что вы универсальное числовое значение превращаете в строку иногда. JavaScript сделает это для вас и некоторое время это будет работать. Но в более сложной ситуации проявится, что у вас строка вместо числа, и что-нибудь сломается.
Для форматирования числа сделайте функцию, которая по числу возвращает строку и назовите её соответственно:
const formatWithSign = n => (n > 0) ? `+${n}` : n.toString();
for (let i = -3; i <= 3; ++i) {
console.log(i, formatWithSign(i));
}
(...) ? ... : ...– тернарный (условный оператор). В зависимости от условия вычисляется выражение до двоеточия или после него;`+${n}`– форматная строка, которая выводит плюс и число за ним;n.toString()переводит число в строку как есть. Преобразование добавлено чтобы функция во всех ситуациях возвращала значения одного типа – строку;=>– по возможности старайтесь использовать стрелочные функции. Это более современный синтаксис, который избегает некоторых проблем, связанных с традиционным объявлениемfunction.