JS实现DNA配对功能代码运行异常,求错误原因及修复方法
DNA碱基配对代码错误分析及修复方案
错误原因
- 字符串拆分逻辑错误:
str.split(" ")是按空格拆分字符串,输入无空格的"GCG"时只会得到长度为1的数组["GCG"],无法拆分出单个碱基,应改为str.split("")按单个字符拆分。 - 循环判断对象错误:循环变量
i是遍历的索引值,不能直接和碱基字符对比,应取当前遍历的字符hiString[i]作为判断对象。 - 条件判断运算符错误:所有if条件中使用了赋值运算符
=,而非相等判断运算符===,会导致直接给变量赋值、条件恒成立,不会执行后续分支判断。 - 返回语句位置错误:
return newArr写在for循环内部,第一次循环执行完成就会直接返回结果,后续碱基不会被遍历处理。
修复后代码
function pairElement(str) { let newArr = []; // 拆分字符串为单个碱基的数组 let hiString = str.split(""); for (let i = 0; i < hiString.length; i++) { // 取当前遍历的碱基做判断 const currentChar = hiString[i]; if (currentChar === "G") { newArr.push(["G", "C"]); } else if (currentChar === "C") { newArr.push(["C", "G"]); } else if (currentChar === "A") { newArr.push(["A", "T"]); } else if (currentChar === "T") { newArr.push(["T", "A"]); } } // 循环结束后再返回结果 return newArr; } console.log(pairElement("GCG")); // 输出 [["G","C"],["C","G"],["G","C"]]
内容的提问来源于stack exchange,提问作者Big Man
相关产品推荐
相关产品推荐

