在数学中,欧几里得距离(别称:欧氏距离)或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。使用这个距离,欧氏空间成为度量空间。相关联的范数称为欧几里得范数。较早的文献称之为毕达哥拉斯度量

计算任意数量维度中两点之间的距离。

  • 使用 Object.keys()Array.prototype.map() 将每个坐标映射到两点之间的差。

  • 使用 Math.hypot() 计算出两点之间的欧氏距离。

const euclideanDistance = (a, b) =>
  Math.hypot(...Object.keys(a).map(k => b[k] - a[k]))

euclideanDistance([1, 1], [2, 3]) // ~2.2361
euclideanDistance([1, 1, 1], [2, 3, 2]) // ~2.4495

此示例来自 30 seconds of code 的 euclideanDistance