Логическая ошибка в коде, которую я не могу понять - PullRequest
1 голос
/ 17 апреля 2020

Я работаю над упражнением под названием «Перевод белка». Вы можете увидеть инструкции здесь https://exercism.io/my/solutions/c7e4d84bad424a5e80f5a86d1242c923.

Мои логики c:

Я создал массив (codonArr), который принял последовательность РНА и разделил значения на 3 символа (используя для l oop). то есть (AUGU CC) будет ["AUG", "U CC"]

Я создал второй массив (proteinArr) для хранения соответствующих кодонов и преобразовал их в имя своего белка (используя для от l oop до l oop через codonArr, а затем с помощью оператора if else для сопоставления кодонов с белками). то есть codonArr [AUG, UUG] будет использоваться для создания proteinArr ["Methionine", "Leucine"]

Однако я не получаю ожидаемых результатов.

Код: Фрагмент кода

Результаты: Фрагмент результата

1 Ответ

1 голос
/ 19 апреля 2020

Ошибка в логе c оператора if, который вы используете. Если оператор if содержит операцию logi c, такую ​​как 'AND', 'OR', 'NOT', все части до и после этих операторов будут оценены и, в Javascript, приведут к истине или ложности. (см. mdn: truey и mdn: falsy , что это означает в деталях).
codonArr [i] === 'UUU' будет истинным только тогда, когда значение переменная codonArr [i] равна 'UUU', но строка c строки 'UU C' всегда имеет значение true. По сути, ваше утверждение elseif имеет следующие результаты:
if (true || true) и if (false || true), которое всегда будет вычисляться в if (true).

...