这样做'汉明'对运动进行测试,我正在努力查看我的功能有什么问题 - 如果有人可以解释一下,我会很感激:
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;
}
任何人都可以解释我出错的地方吗?
提前致谢!
答案 0 :(得分:1)
如果你期望差异,你的功能应该是:
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;
}