如何找到最接近给定数字对的数字?

时间:2019-06-18 16:48:22

标签: javascript

我有一个对象数组,其中有一对数字,而我有一个给定的一对

let points = [{x:20,y:30}, {x:34,y:40}, {x:45,y:30}, {x:55,y:30}]

let givenNumber= {x:19,y:25}

如何从数组中找到最接近给定对数的对

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您可以获取距离,然后通过减小数组两点的距离来缩小数组。

const distance = (p1, p2) => Math.sqrt((p1.x - p2.x) ** 2 + (p1.y - p2.y) ** 2);

let points = [{ x: 20, y: 30 }, { x: 34, y: 40 }, { x: 45, y: 30 }, { x: 55, y: 30 }],
    point = { x: 19, y: 25} ,
    result = points.reduce((a, b) => distance(a, point) < distance(b, point) ? a : b);
    
console.log(result);