使用莱文斯坦距离(Levenshtein distance)计算两数组的差异

前言

莱文斯坦距离(Levenshtein distance以下简称ld)是一种常见的算法或可以称之为一种度量单位(前提是操作权重确定),它用于表示从字串序列A到字串序列B所需要进行操作(增加、删除、更新)的综合。

鉴于数组与字符的相似性,这个算法当然同样适合与数组

问题是作为一个前端开发,你不好好切图,用这个算法做啥?

事实上Regularjs内部就使用到了这种算法,它用于检测数组的变动差异,并将差异反映到View中(即Dom)。

ld算法的另一个好处是,可以容易的将计算结果映射到未来将会到来的JS ES6Array.observe的返回值形式,方便未来的无缝迁移。