@booogabooo

Как преобразовать число в javascript?

Появилась проблемма...
Суть функции: нужно, чтобы функция, которой передается любое число, возвращала сумму цифр...
Вот такой тест должна проходить
Test.assertEquals(sumDigits(10), 1);
Test.assertEquals(sumDigits(99), 18);
Test.assertEquals(sumDigits(-32), 5);


Вот мой код:
function sumDigits(number){
  var string = new String(number);
  var numberOne = string.charAt(0);
  var numberTwo = string.charAt(1);
  var newNumberOne = new Number(numberOne);
  var newNumberTwo = new Number(numberTwo);
  return newNumberOne + newNumberTwo;
}


Первые 2 теста проходит, а с отрицательным числом - нет...Подскажите...
И еще, мне кажется, что код моя как-то криво написан, через одно место...может, это можно было сделать проще...
  • Вопрос задан
  • 2549 просмотров
Решения вопроса 4
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
function sumDigits(number){
  var d = Math.abs(number)
  var r = 0
  while (d!=0)
    {
        r += d%10;
        d = parseInt(d/10);
    }
  return r;
}
Ответ написан
Комментировать
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
function getSum (num) {
	var sum = 0;

	Math.abs(num).toString().split('').forEach(function (a) {
		sum += +a;
	});

	return sum;
}
Ответ написан
function sumDigits(num){
  return String(num).split('').reduce(function(memo, dig){
    return +dig ? memo + +dig : memo;
  }, 0);
}
Ответ написан
Комментировать
@kovrovchanin
function sumDigits(number){
  var r = 0;
      (number+'').replace(/-?[0-9]/g,function(n){
            r+=parseInt(n);
      })
  return r;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект