Мне нужно сделать функцию, которая принимает число и возвращает сумму его цифр, если число отрицательно, первая цифра должна считаться отрицательной при добавлении чисел, это то, что я имеют:Сумма возврата (положительная или отрицательная)
var arrx = [];
var oper;
var others = 0;
function sumDigits(num) {
// your code here
var y = num.toString();
var c = y.split("");
c.forEach((h) => arrx.push(Number(h)));
if (num < 0){
oper = -arrx[0];
for (var z = 1; z < arrx.length; z++){
others += arrx[z];
}
return others + oper;
}
return arrx.reduce((a,b) => a+b);
}
sumDigits(1234);
При заданном отрицательном числе функция возвращает NaN, в чем проблема?
Почему вы раздвинуть цифры в массив, когда 'c' уже один ? –
Я предлагаю разработать алгоритм, который работает непосредственно с числами, а не преобразовывать число в строку. Можете ли вы подумать о том, как получить цифру от числа? Как вы получите остальную часть номера, кроме цифры? –