运动:rna转录。苦苦挣扎于解决方案

时间:2016-08-05 09:51:16

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

尝试完成此练习javascript测试但不能按预期工作。

我很擅长切换语句,因此可能会出错,也许使用数组是不必要的。无论哪种方式,我的最终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()

}

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你的功能应该是:

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('');
}