function getLetterDifference(index,letter,charArrayString) {
if (charArrayString[index] === letter) {
return 0;
}else{
var complete = false;
var checkDown = true;
var checkUp = true;
var differ = 0;
while (1) {
differ++;
if (index-differ < 0) {
checkDown = false;
}
if (index+differ > charArrayString.length-1) {
checkUp = false;
}
if (!checkUp && !checkDown) {
//Returning -1 means that the letter is not occuring in the next string.
return -1
}
if (checkDown) {
if (charArrayString[index-differ] === letter) {
return differ;
}
}
if (checkUp) {
if (charArrayString[index+differ] === letter) {
return differ;
}
}
}
}
}
function stringSimilarity(string1,string2) {
var similarity = 0;
string1 = string1.toUpperCase();
string2 = string2.toUpperCase();
//Make string1 the smaller string
if (string1.length > string2.length) {
var backupString = string1;
string1 = string2;
string2 = backupString;
}
var charArray1 = string1.split('');
var charArray2 = string2.split('');
for (var i = 0; i < string1.length; i++) {
var curChar = string1.charAt(i);
var numLettersDiffering = getLetterDifference(i,curChar,charArray2);
if (numLettersDiffering != -1) {
similarity += (1-(numLettersDiffering/string2.length))/string2.length;
}
}
return similarity;
}
console.log((stringSimilarity("lvagnozzi","vagnozzi")*100).toFixed(1) + "%");