Trying to complete this Exercism javascript test but not working as I expected.
I'm quite new to switch statements so could be going wrong here, and perhaps using an array is unnecessary. Either way, my final rnaString.join()
value is returning an empty string.
Also if there is a more concise way of going about it, I'd appreciate any pointers.
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()
}
Any help appreciated.
If i understand correct, your function should be like:
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('');
}