// Compute the edit distance between the two given strings function getEditDistance(sourceString, targetString) { if (sourceString.length === 0) return targetString.length; if (targetString.length === 0) return sourceString.length; let matrix = []; // increment along the first column of each row for (let i = 0; i <= targetString.length; i++) { matrix[i] = [i]; } // increment each column in the first row for (let j = 0; j <= sourceString.length; j++) { matrix[0][j] = j; } // Fill in the rest of the matrix for (let i = 1; i <= targetString.length; i++) { for (let j = 1; j <= sourceString.length; j++) { let cost = 1; if (targetString.charAt(i-1) === sourceString.charAt(j-1)) { cost = 0; } matrix[i][j] = Math.min(matrix[i-1][j-1] + cost, // substitution matrix[i][j-1] + 1, // insertion matrix[i-1][j] + 1 // deletion ); } } return matrix[targetString.length][sourceString.length]; } //console.log(getEditDistance("saturday", "sunday")); //sollte 3 ergeben