--- title: Jaro distance id: 5a23c84252665b21eecc7ec2 challengeType: 5 videoUrl: '' localeTitle: Jaro距离 --- ## Description
Jaro距离是两个弦之间相似性的度量。两个弦的Jaro距离越高,弦越相似。对得分进行归一化,使得0等于没有相似性, 1等于完全匹配。定义两个给定字符串\(s_1 \)和\(s_2 \)的Jaro距离\(d_j \)是\ begin {align} d_j = \ begin {cases} 0 && \ text {if} m = 0 \\\ \ {\ frac {1} {3}} \ left({\ frac {m} {| s_ {1} |}} + {\ frac {m} {| s_ {2} |}} + {\ frac { mt} {m}} \ right)&& \ text {otherwise} \ end {cases} \ end {align}其中: 分别来自\(s_1 \)和\(s_2 \)的两个字符只有在相同且不远于\(\ left \ lfloor \ frac {\ max(| s_1 |,| s_2 |)}时才被认为是匹配的 {2} \右\ rfloor-1 \)。将\(s_1 \)的每个字符与\(s_2 \)中的所有匹配字符进行比较。匹配(但不同的序列顺序)字符除以2的数量定义了转置的数量。 示例给定字符串\(s_1 \) DWAYNE和\(s_2 \) DUANE我们发现: 我们发现Jaro得分为:\(d_j = \ frac {1} {3} \ left(\ frac {4} {6} + \ frac {4} {5} + \ frac {4-0} {4} \ right)= 0.822 \)。编写一个函数a,它接受两个字符串作为参数并返回相关的Jaro距离。
## Instructions
## Tests
```yml tests: - text: jaro应该是一个功能。 testString: 'assert(typeof jaro=="function","jaro should be a function.");' - text: 'jaro(""+tests[0][0]+"",""+tests[0][1]+"")应返回一个数字。' testString: 'assert(typeof jaro(tests[0][0],tests[0][1])=="number","jaro() should return a number.");' - text: 'jaro(""+tests[0][0]+"",""+tests[0][1]+"")应该返回"+results[0]+" 。' testString: 'assert.equal(jaro(tests[0][0],tests[0][1]),results[0],"jaro(""+tests[0][0]+"",""+tests[0][1]+"") should return "+results[0]+".");' - text: 'jaro(""+tests[1][0]+"",""+tests[1][1]+"")应返回"+results[1]+" 。' testString: 'assert.equal(jaro(tests[1][0],tests[1][1]),results[1],"jaro(""+tests[1][0]+"",""+tests[1][1]+"") should return "+results[1]+".");' - text: 'jaro(""+tests[2][0]+"",""+tests[2][1]+"")应返回"+results[2]+" 。' testString: 'assert.equal(jaro(tests[2][0],tests[2][1]),results[2],"jaro(""+tests[2][0]+"",""+tests[2][1]+"") should return "+results[2]+".");' - text: 'jaro(""+tests[3][0]+"",""+tests[3][1]+"")应返回"+results[3]+" 。' testString: 'assert.equal(jaro(tests[3][0],tests[3][1]),results[3],"jaro(""+tests[3][0]+"",""+tests[3][1]+"") should return "+results[3]+".");' - text: 'jaro(""+tests[4][0]+"",""+tests[4][1]+"")应该返回"+results[4]+" 。' testString: 'assert.equal(jaro(tests[4][0],tests[4][1]),results[4],"jaro(""+tests[4][0]+"",""+tests[4][1]+"") should return "+results[4]+".");' ```
## Challenge Seed
```js function jaro (s, t) { // Good luck! } ```
### After Test
```js console.info('after the test'); ```
## Solution
```js // solution required ```