Size: a a a

JavaScript Rules

2020 March 26

OS

Oleg S in JavaScript Rules
Alexander Kabolov
Вопрос как раз и стоит почему функция ничего не возвращает если в условном операторе есть res (который имеет значение [‘h’]) и написана строка return res
я же сказал, потому что в else нету return

там код просто выполняется и всё
источник

SV

Sergey V in JavaScript Rules
если задача перевернуть строку решение какое-то странное
источник

AK

Alexander Kabolov in JavaScript Rules
Oleg S
я же сказал, потому что в else нету return

там код просто выполняется и всё
Если в else будет return то тогда на первой итерации мне возвратиться значение - а этого мне не нужно. Или вы считаете что из if не возвращает - можно только из else?
источник

OS

Oleg S in JavaScript Rules
Alexander Kabolov
Если в else будет return то тогда на первой итерации мне возвратиться значение - а этого мне не нужно. Или вы считаете что из if не возвращает - можно только из else?
вы немного не понимаете как работает рекурсия, return нужен в обоих случаях
источник

AK

Alexander Kabolov in JavaScript Rules
Рекурсия и return никак не связаны, рекурсивная функция не обязательно должна просто возвращать
источник

OS

Oleg S in JavaScript Rules
Alexander Kabolov
Рекурсия и return никак не связаны, рекурсивная функция не обязательно должна просто возвращать
окей, но если вы не ждете что она что-то возратит, то чего вы ожидаете кроме андефайна?)
источник

AK

Alexander Kabolov in JavaScript Rules
Oleg S
окей, но если вы не ждете что она что-то возратит, то чего вы ожидаете кроме андефайна?)
Посмотрите вывод из консоли
источник

OS

Oleg S in JavaScript Rules
Alexander Kabolov
Посмотрите вывод из консоли
ну я же объяснил уже, почему вы не попробовали return добавить?
источник

AK

Alexander Kabolov in JavaScript Rules
Ну потому что это противоречит всему) ни в каком случае не требуется делать return из всех блоков условного оператора - только если это не продиктовано требованиями задачи (Мне такого делать не нужно)
источник

OS

Oleg S in JavaScript Rules
Alexander Kabolov
Ну потому что это противоречит всему) ни в каком случае не требуется делать return из всех блоков условного оператора - только если это не продиктовано требованиями задачи (Мне такого делать не нужно)
рукалицо, зачем тогда писать f = reverseString() - ф-ция же ничего не возвращает
источник

👑O

👑A One👑 in JavaScript Rules
Oleg S
рукалицо, зачем тогда писать f = reverseString() - ф-ция же ничего не возвращает
+
источник

AK

Alexander Kabolov in JavaScript Rules
Каким образом обьясните - функция ничего не возвращает - если в ней стоит строка с директивой return?
источник

OS

Oleg S in JavaScript Rules
Alexander Kabolov
Каким образом обьясните - функция ничего не возвращает - если в ней стоит строка с директивой return?
в else нету такой строки, выполнение когда туда доходит что должно произойти?
источник

👑O

👑A One👑 in JavaScript Rules
Oleg S
в else нету такой строки, выполнение когда туда доходит что должно произойти?
++
Если у Вас выполнится второе условие то ничего не произойдет
источник

AK

Alexander Kabolov in JavaScript Rules
Так, ребята - обьясняю приходит массив в аргумент - инициируется новый массив (пустой) потом я нахожу длину массива (который в аргументе) и добавляю в массив res последний элемент массива который пришел из аргумента - далее идет условный оператор (дословно - если длина массива который во входящем аргументе равен 1 то тогда вернуть массив res - который точно есть в замыкании - как минимум это пустой массив, если длина массива приходящего из аргумента больше 1 то тогда из этого массива нужно удалить последний элемент - и рекурсивно вызвать ф-ю reverseString и передать в него массив, который на 1 элемент меньше первоначального аргумента s) я думаю понятно что это будет повторятся до того момента как длина s не станет равна 1 и тогда то как раз код зайдет в первый блок if который и должен вернуть мне значение res (которое как минимум путой массив) и значение которого в замыкании нашей функции - если вы думаете что он каким-то образом не попадает в блок if то это не так (вызывается и работает консоль лог)
источник

👑O

👑A One👑 in JavaScript Rules
Повторятся до того пока массив не станет равен 1, попахивает циклом? Но что то не вижу в коде. Или я чего то не понимаю
источник

AK

Alexander Kabolov in JavaScript Rules
👑A One👑
Повторятся до того пока массив не станет равен 1, попахивает циклом? Но что то не вижу в коде. Или я чего то не понимаю
Видимо не понимаете - посмотрите про рекурсию
источник

OS

Oleg S in JavaScript Rules
Alexander Kabolov
Так, ребята - обьясняю приходит массив в аргумент - инициируется новый массив (пустой) потом я нахожу длину массива (который в аргументе) и добавляю в массив res последний элемент массива который пришел из аргумента - далее идет условный оператор (дословно - если длина массива который во входящем аргументе равен 1 то тогда вернуть массив res - который точно есть в замыкании - как минимум это пустой массив, если длина массива приходящего из аргумента больше 1 то тогда из этого массива нужно удалить последний элемент - и рекурсивно вызвать ф-ю reverseString и передать в него массив, который на 1 элемент меньше первоначального аргумента s) я думаю понятно что это будет повторятся до того момента как длина s не станет равна 1 и тогда то как раз код зайдет в первый блок if который и должен вернуть мне значение res (которое как минимум путой массив) и значение которого в замыкании нашей функции - если вы думаете что он каким-то образом не попадает в блок if то это не так (вызывается и работает консоль лог)
оно заходит в if и возвращает, но вовзращает вникуда, вы не ждете результата
источник

AK

Alexander Kabolov in JavaScript Rules
Oleg S
оно заходит в if и возвращает, но вовзращает вникуда, вы не ждете результата
Ну как же я его не жду если я результат исполнения функции я пишу в переменную
источник

OS

Oleg S in JavaScript Rules
Alexander Kabolov
Ну как же я его не жду если я результат исполнения функции я пишу в переменную
нет не пишете
источник