Javascript 获取阵列中最接近点的最近坐标

Javascript 获取阵列中最接近点的最近坐标,javascript,jquery,arrays,Javascript,Jquery,Arrays,我在网格上有一个点(以下称为原点),例如,[3,3] 我还有一组点,它们与原始点位于相同的水平和垂直线上,比如说,[[3,1],[3,2],[3,4],[7,3],[8,3] 我想要一个函数,它将返回最多四个点的数组:每个方向上最接近原始点的点(即左、右、上、下)。在上面的例子中,它将返回 [[3,2],[3,4],[7,3]] 因为[3,2]是左边的最近点,[3,4]是右边的最近点,[7,3]是上面的最近点,下面没有点。(方向的顺序并不重要。) 使用Javascript/JQuery是否有一

我在网格上有一个点(以下称为原点),例如,
[3,3]

我还有一组点,它们与原始点位于相同的水平和垂直线上,比如说,
[[3,1],[3,2],[3,4],[7,3],[8,3]

我想要一个函数,它将返回最多四个点的数组:每个方向上最接近原始点的点(即左、右、上、下)。在上面的例子中,它将返回

[[3,2],[3,4],[7,3]]
因为
[3,2]
是左边的最近点,
[3,4]
是右边的最近点,
[7,3]
是上面的最近点,下面没有点。(方向的顺序并不重要。)


使用Javascript/JQuery是否有一种优雅且相当简洁的方法可以做到这一点?

我不懂Javascript,但如果你能用Javascript来表达,下面的算法将非常简单

(X0,Y0)
为原点

遍历数组,
[(X1,Y1),…,(XN,YN)]
,并考虑

R=席-X0>0<P/> 及

L= X0-席> 0

当你继续的时候。 在迭代结束时,这些值给出最近的点,即
X0+R
X0-L


在点的垂直线上进行类似的迭代。

上面的最近点不是[3,1]吗?不是的,[3,2]比[3,1]更接近[3,3]。输入是否总是像您的示例中那样排序?@rahulmohan我不想指望它,但实际上会,因为它是由for循环生成的。