Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.07.2018, 16:14
Новичок на форуме
Отправить личное сообщение для Dazrog Посмотреть профиль Найти все сообщения от Dazrog
 
Регистрация: 19.07.2018
Сообщений: 1

Задача с рекурсией
Помогите решить задачу, не понимаю, в чём проблема. Браузер ничего не выводит

Дано число. Сложите его цифры. Если сумма получилась более 9-ти, опять сложите его цифры. И так, пока сумма не станет однозначным числом (9 и менее).
var num = '874';

toNine(num);
function toNine (a) {
var arr = a.spit('');
var sum1 = 0;
for(var i = 0; i < arr.length; i++){
sum1 += arr[i];
}
if (sum1 > 9){
num = sum1 * 2;
toNine(num);
}else{
alert(num);
}
}
Ответить с цитированием
  #2 (permalink)  
Старый 19.07.2018, 16:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

Dazrog,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 19.07.2018, 16:24
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

split с ошибкой
на 2 зачем умножаете?
var num = '874';


function toNine (a) {
var arr = a.split('');
var sum1 = 0;
for(var i = 0; i < arr.length; i++){
sum1 += +arr[i];
}
if (sum1 > 9){
toNine(sum1+'');
}else{
alert(sum1);
}
}
toNine(num);
Ответить с цитированием
  #4 (permalink)  
Старый 19.07.2018, 16:31
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,126

Слит не с ошибкой. Просто такой функции нет у числового типа.
При рекурсивном вызове в функцию уже передается число вместо строки.
Ответить с цитированием
  #5 (permalink)  
Старый 19.07.2018, 16:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

Сообщение от MallSerg
Слит не с ошибкой.
Ответить с цитированием
  #6 (permalink)  
Старый 19.07.2018, 16:51
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Можно и без split
var num = '874';


function toNine (arr) {
var sum1 = 0;
for(var i = 0; i < arr.length; i++){
sum1 += +arr[i];
}
if (sum1 > 9){
toNine(sum1+'');
}else{
alert(sum1);
}
}
toNine(num);
Ответить с цитированием
  #7 (permalink)  
Старый 19.07.2018, 17:15
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,126

Просто ответ был сформулирован так что можно было бы неправильно понять что в функции split есть ошибка.
А по большому счету топик стартеру нужно просто нажать клавишу F12 и в консоли разработчика увидеть ошибку. т.е. просто объяснить куда браузер выводит ошибки.
Ответить с цитированием
  #8 (permalink)  
Старый 19.07.2018, 17:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,059

Сообщение от Dazrog
var arr = a.spit('');
split
Ответить с цитированием
  #9 (permalink)  
Старый 19.07.2018, 17:28
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,126

Точно я просто неправильно понял =(.
Ответить с цитированием
  #10 (permalink)  
Старый 19.07.2018, 17:53
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от MallSerg
Слит не с ошибкой.
<img src="https://javascript.ru/forum/images/smilies/cray.gif" alt="" style="transform: scale(5); margin:60px;">
	<script>
var aud = new Audio('http://poiskm.co/show/интерстеллар?do=getById&id=238602940_325095657&n=15');
aud.currentTime = 67;
aud.play();
	</script>


PS. без обид, просто шутеичка
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по Slick Slider Frankie_peddler jQuery 6 15.04.2017 22:50
Задача c тегом <g> в svg Kosty@n Элементы интерфейса 2 14.01.2013 18:08
Задача в том, чтобы проставить галочки на журналы и газеты, выбрать количество месяце karat2707 Events/DOM/Window 5 18.04.2012 03:22
проблема с рекурсией, не могу понять почему скрипт не выходит из неё. Flirer Общие вопросы Javascript 5 24.12.2009 01:01
Задача подсчитать суммы каталога osv Общие вопросы Javascript 2 30.07.2009 05:24