尝试完成此练习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()
}
任何帮助表示感谢。
答案 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('');
}