За последние 24 часа нас посетили 17632 программиста и 1669 роботов. Сейчас ищет 1541 программист ...

вернуть строку используя рекурсию

Тема в разделе "JavaScript и AJAX", создана пользователем Taktreba, 16 окт 2017.

  1. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    Код (Javascript):
    1. function isPalindrome($word) { // $word ="abcde"
    2.     var arr = $word.split(''); // arr =["a","b","c","d"]
    3.  
    4.     var str = ''; // str ="e"
    5.  
    6.     str += arr.pop(); // str ="e",arr =["a","b","c","d"]
    7.  
    8.  
    9.     if(arr.length === 0) { // arr =["a","b","c","d"]
    10.         return str; // str ="e"
    11.     }else {
    12.         var newStr = arr.join(''); // newStr ="abcd",arr =["a","b","c","d"]
    13.         isPalindrome(newStr);
    14.     }
    15.  
    16. }
    17.  
    18. var rrr = 'abcde';
    19.  
    20.  
    21. alert(isPalindrome(rrr));
    Вообще задача написать функцию возвращающая слово наоборот используя рекурсию

    возможно я не правильно начал, но то что я сделал, по идее должно работать, но в момент когда срабатывает рекурсия var str = 'e' сбрасывается на undefind
    я что то упускаю важно из js

    // комментарии это процесса дебага консоли браузера, перед моментом рекурсии

    вопрос: можно ли сделать так как я начал, если нет подскажите решение, спасибо
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Давно изобретенный (не мной) способ:
    Код (Javascript):
    1. function reverse(s) {
    2.   return (s === '') ? '' : reverse(s.substr(1)) + s.charAt(0);
    3. }
     
    Walk нравится это.
  3. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    ого а что тут происходит? в двух словах?
    и
    если не сложно что не так с моим решением кроме того что оно громоздкое? мне понять чего не работает, и чего str значение слитает с 'e' на undefind
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    В двух словах тут не расскажешь. И даже десяти будет мало. Для облегчения восприятия, можно сделать вывод того, что происходит ... если поможет.
    Чтобы ваш пример заработал, измените на 13-ой строке:
    Код (Javascript):
    1. // Вместо
    2. isPalindrome(newStr);
    3. // Пишем
    4. return str += isPalindrome(newStr);
     
    Walk нравится это.
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    @Taktreba
    опять же на сертификаты сдавай, тоже будут лучше на работу брать
    тебе надо ехать куда-то работать в контору, чтобы одному дома не сидеть.
     
  6. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    я ж про это и говорю
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну так и что?
     
  8. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    я вот все время ищу работу в иностранной конторе где требуется программе с знанием английского чуть ниже среднего))
    пока не могу найти)) а вообще хочется поработать в команде - но так не хочется работать от звонка до звонка..
    сейчас у меня получается что я вроде и больше 8 часов в день провожу за компом. но это же дома.. хочу работаю.. хочу нет..
    хотя это расслабляет.. ездил отдохнуть... вот уже второй день никак не могу в работу втянуться)
     
  9. Taktreba

    Taktreba Активный пользователь

    С нами с:
    11 янв 2017
    Сообщения:
    543
    Симпатии:
    132
    а бабки где ты берешь? все зависит от того сможешь ли ты снять квартиру и четыре рта (это с котом и ребенком ) кормить
     
  10. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    так всегда должен быть резерв что бы хотя бы несколько месяцев можно было не работать..