尝试完成此 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/