Введение в программирование
Преобразование DNA в RNA
Николай Тюнис
Здравствуйте, моя программа работает, но проверка ее почему-то не принимает.
// removed
И не пойму ошибку в линтере
24:10 error Unnecessary 'else' after 'return' no-else-return
✖ 1 problem (1 error, 0 warnings)
1 error and 0 warnings potentially fixable with the --fix
option.
Nikita Mikhaylov
Обратите внимание на следующий 7 тест. Именно при нём ваш код уйдёт в бесконечный цикл. Попробуйте расписать на листочке все действия, которые будут, если на вход вашей программе передать строку ACNTG
А тот else, который был пока оставьте. С ошибками линтера советую поработать уже после прохождения тестов
Сергей К.
Николай, как успехи?
Николай Тюнис
Понял, благодарю, буду разбираться.
Nikita Mikhaylov
Добрый вечер. Покажите вывод тестов. Из них станет понятно, на каком именно значении ваша программа отрабатывает не так, как следует.
По поводу линтера: он говорит, что не стоит использовать конструкцию
if (....) { return .... } else { return .... }
В этом нет особо смысла, так как вы используете return до этого, а значит при выполнении условий выше return внутри else никогда не сработает, так что не опасаясь можно вынести этот return за блок else. То есть код будет выглядеть так:
if (...) { return ... }
return ....
Подробнее можете почитать тут: https://eslint.org/docs/rules/no-else-return
Николай Тюнис
Все работает! поместил условие при котором выдает null внутрь цикла:
// removed
Николай Тюнис
Вывод тестов:
status
→ Code has been running for too long. Infinite loop or recursion. Check terminating conditions.если убрать условие:
else if (str === '') { return ''; }
то вывод тестов будет таким:
Expected: "" Received: null
Difference:
Comparing two different types of values. Expected string but received null.
4 | expect(dnaToRna('ACGTGGTCTTAA')).toBe('UGCACCAGAAUU');
5 | expect(dnaToRna('CCGTA')).toBe('GGCAU');
> 6 | expect(dnaToRna('')).toBe('');
| ^
7 | expect(dnaToRna('ACNTG')).toBeNull();
8 | });