substance
Version:
Substance is a JavaScript library for web-based content editing. It provides building blocks for realizing custom text editors and web-based publishing system. It is developed to power our online editing platform [Substance](http://substance.io).
20 lines (19 loc) • 440 B
JavaScript
export default function levenshtein (a, b) {
const m = []
for (let i = 0; i <= b.length; i++) {
m[i] = [i]
if (i === 0) continue
const ib = i - 1
for (let j = 0; j <= a.length; j++) {
m[0][j] = j
if (j === 0) continue
const jb = j - 1
m[i][j] = b.charAt(ib) === a.charAt(jb) ? m[ib][jb] : Math.min(
m[ib][jb] + 1,
m[i][jb] + 1,
m[ib][j] + 1
)
}
}
return m
}