Javascript 我无法理解的代码中的逻辑错误

Javascript 我无法理解的代码中的逻辑错误,javascript,algorithm,logic,Javascript,Algorithm,Logic,我正在做一个叫做“蛋白质翻译”的练习。你可以在这里看到说明 我的逻辑是: 我创建了一个数组(codonArr),它接收一个rna序列,并将值拆分为3个字符(使用for循环)。i、 e(AUGUCC)将是[“AUG”,“UCC”] 我创建了第二个数组(proteinArr)来存储匹配的密码子,并将它们转换为它们的蛋白质名称(使用for循环遍历codonArr,然后使用if-else将密码子匹配到蛋白质)。即 codonArr[AUG,UUG]将用于产生蛋白质受体[“蛋氨酸”,“亮氨酸”] 然而,我

我正在做一个叫做“蛋白质翻译”的练习。你可以在这里看到说明

我的逻辑是:

我创建了一个数组(codonArr),它接收一个rna序列,并将值拆分为3个字符(使用for循环)。i、 e(AUGUCC)将是[“AUG”,“UCC”]

我创建了第二个数组(proteinArr)来存储匹配的密码子,并将它们转换为它们的蛋白质名称(使用for循环遍历codonArr,然后使用if-else将密码子匹配到蛋白质)。即 codonArr[AUG,UUG]将用于产生蛋白质受体[“蛋氨酸”,“亮氨酸”]

然而,我没有得到我期望的结果

代码:


结果:

错误在您使用的if语句的逻辑中。当if语句包含诸如“AND”、“OR”、“NOT”之类的逻辑运算时,将对这些运算符之前和之后的所有部分进行求值,并且在Javascript中,将生成truthy或falsy。 (请参阅详细信息及其含义)。
codonArr[i]==“UUU”仅在变量codonArr[i]的值等于“UUU”时才为真,但静态字符串“UUC”始终为真。实际上,您的elseif声明具有以下结果:

if(true | | true)和if(false | | true),它们将始终在if(true)中求值。

这两个elseifs的逻辑看起来都是错误的。这可能就是你想要的:(codonArr[i]==='UUU'| | codonArr[i]==='UUC')解决了我的问题。你能解释一下我代码中的逻辑错误以及你的逻辑是如何解决这个问题的吗?当然,请看答案。