javascript - 锻炼 : rna-transcription. 苦苦寻求解决方案

标签 javascript for-loop switch-statement string-length

尝试完成此 Exercism javascript 测试,但未按我的预期工作。

我对 switch 语句很陌生,所以这里可能会出错,也许使用数组是不必要的。无论哪种方式,我的最终 rnaString.join() 值都会返回一个空字符串。

此外,如果有更简洁的方法,我将不胜感激。

测试

describe('toRna()', function() {
  it('transcribes all dna nucleotides to their rna complements', function() {
    expect(dnaTranscriber.toRna('ACGTGGTCTTAA'))
        .toEqual('UGCACCAGAAUU');
  });
});

我的回答

DnaTranscriber.prototype.toRna = function(dna) {

for (var i=0; i < dna.length; i++) {
      var rnaString = [];

      switch(dna) {
         case 'G':
            rnaString.push('C');
            break;
         case 'C':
            rnaString.push('G');
            break;
         case 'T':
            rnaString.push('A');
            break;
         case 'A':
            rnaString.push('U');
      }// end switch()

   }// end for loop()

   return rnaString.join()

}

感谢任何帮助。

最佳答案

如果我理解正确,你的函数应该是这样的:

DnaTranscriber.prototype.toRna = function(dna) {
    var rnaString = [];
        for (var i=0; i < dna.length; i++) {
        switch(dna[i]) {//check character instead all string
            case 'G':
                rnaString.push('C');
                continue;
            case 'C':
                rnaString.push('G');
                continue;
            case 'T':
                rnaString.push('A');
                continue;
            case 'A':
                rnaString.push('U');
        }// end switch()
    }// end for loop()
    return rnaString.join('');
}

关于javascript - 锻炼 : rna-transcription. 苦苦寻求解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38786308/

相关文章:

javascript - 如何摆脱变音符号(〜来自ñ,'来自á和é)?

r - 如何在R中编写一个重新编码多个变量的for循环?

c++ - 减少模拟器中 switch 语句的大小?

C# 在两个数字之间切换?

javascript - Angular:无法导入 Sequelize

javascript - 为什么不能通过引用交换二维数组的数组?

javascript - CKEditor - 更改图像源

java - 如何在一定时间后继续 for 循环而不使用 `try ... catch` 方法?

for-loop - AWK:用类似于FNR==NR方法的方法连接并处理三个或更多文件

C# 开关语句 : More efficient to not use default?