Ребята, здравствуйте.
Делаю задания на codewars, не могу понять, почему последняя итерация reduce
возвращает конкатенацию вместо сложения.
function digital_root(n) {
// ...
n = n.toString().split('');
console.log('n', n)
n = n.reduce( function(total, current){
console.log(parseFloat(total), parseFloat(current));
console.log('parseFloat(total) + parseFloat(current)', Number(total) + Number(current))
return Number(total) + Number(current);
})
if (n.toString().split('').length > 1) {
digital_root(n)
}
return n
}
console.log(digital_root(132189));
В приведенном коде результат рекурсии нигде не используется.
На самом деле 24 - это не склейка 2 и 4, а сумма цифр 132189, просто из-за кучи console.log возникла путаница что где выводится.
Для решения достаточно возвращать результат рекурсии, если на текущей итерации получилось число с несколькими цифрами
function digital_root(n) {
// ...
n = n.toString().split('');
console.log('n', n)
n = n.reduce(function(total, current) {
console.log(parseFloat(total), parseFloat(current));
console.log('parseFloat(total) + parseFloat(current)', Number(total) + Number(current))
return Number(total) + Number(current);
})
if (n.toString().split('').length > 1) {
return digital_root(n)
}
return n
}
console.log(digital_root(132189));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброго времени суток, на сайте нужно сделать кнопку входа через LinkedInСделал как тут написано
Напишите функцию insertAfter(elem, refElem), которая добавит elem после узла refElemкак я понимаю нужно вставить elem после первого дива на странице(между двух...
Нужно составить книгу заявок биржи в виде Google Таблицы - данные из парсинга распределить по колонкам и строчкам, используя скрипт с Public API биржи
Не могу сделать так что бы drag and drop срабатовало менялся размер по отдельности все работает а вместе только drag and drop срабатывает