JavaScript 数学假设

示例

为了找到两点之间的距离,我们使用毕达哥拉斯来获得两点之间向量分量的平方和的平方根。

var v1 = {x : 10, y :5};
var v2 = {x : 20, y : 10};
var x =v2.x- v1.x;
var y =v2.y- v1.y;
var distance = Math.sqrt(x * x + y * y); // 11.180339887498949

随着ECMAScript 6的出现Math.hypot,它具有相同的功能

var v1 = {x : 10, y :5}; 
var v2 = {x : 20, y : 10}; 
var x =v2.x- v1.x; 
var y =v2.y- v1.y;
var distance = Math.hypot(x,y); // 11.180339887498949

现在,您不必持有临时变量即可停止代码变成乱七八糟的变量

var v1 = {x : 10, y :5};
var v2 = {x : 20, y : 10};
var distance = Math.hypot(v2.x - v1.x,v2.y- v1.y); // 11.180339887498949

Math.hypot 可以采用任意数量的尺寸

// 在3D中查找距离
var v1 = {x : 10, y : 5, z : 7};
var v2 = {x : 20, y : 10, z : 16};
var dist = Math.hypot(v2.x - v1.x,v2.y- v1.y,v2.z- v1.z); // 14.352700094407325

// 找到第11维矢量的长度
var v = [1,3,2,6,1,7,3,7,5,3,1]; 
var i = 0;
dist = Math.hypot(v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++],v[i++]);