在对运动进行“锤击”测试时,我正在努力查看我的功能出了什么问题—如果有人可以提供一些帮助,我将不胜感激:
规格
it('small hamming distance in longer strand', function () {
expect(hamming.compute('GGACG', 'GGTCG')).toEqual(1);
});
对于两个字符串之间顺序不匹配的每个字符,我想添加1。因此,在这种情况下,G === G(0),G === G(0),A!== T(1 ),C === C(1),G === G(1)。
因此,如规范所示,我希望返回1。
但是我下面的函数返回5。
我的功能
this.compute = function(dna1, dna2) {
var mismatches = 0;
for (var i = 0; i <= dna1.length; i++) {
if (dna1[i] === dna2[i]) {
mismatches ++;
}
}
return mismatches;
}
谁能解释我要去哪里错了?
提前致谢!
最佳答案
如果您期望有所不同,则功能应类似于:
this.compute = function(dna1, dna2) {
var mismatches = 0;
for (var i = 0; i <= dna1.length; i++) {
if (dna1[i] != dna2[i]) {//if character not equals
mismatches ++;
}
}
return mismatches;
}