'汉明' javascript test(Exercism) - 匹配两个字符串之间的字母

时间:2016-08-05 08:44:09

标签: javascript string function for-loop

这样做'汉明'对运动进行测试,我正在努力查看我的功能有什么问题 - 如果有人可以解释一下,我会很感激:

规格

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;

}

任何人都可以解释我出错的地方吗?

提前致谢!

1 个答案:

答案 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;

}