Javascript查找字符串附近的数字

Javascript查找字符串附近的数字,javascript,Javascript,好的,我有这样一个列表: 我想找到三个最近的,比如说,如果我跑 1539, 4502 它会找到最接近它的三个值,我所说的最接近是指由逗号分隔的字符串的第一个和第二个值最相似 我试着做了一个for循环,计算出它们之间的距离,但没有成功。您的数据格式不好。您需要一个数字数组,而不是字符串数组。因此,第一个任务是进行转换 然后,可以使用距离公式计算到给定坐标的距离,并将其作为列表中每个点的额外信息存储 然后按额外的距离排序。排序它不是最有效的方法,因为您可以先检索最小距离,然后在删除第一个后检索最小值

好的,我有这样一个列表:

我想找到三个最近的,比如说,如果我跑 1539, 4502 它会找到最接近它的三个值,我所说的最接近是指由逗号分隔的字符串的第一个和第二个值最相似


我试着做了一个for循环,计算出它们之间的距离,但没有成功。

您的数据格式不好。您需要一个数字数组,而不是字符串数组。因此,第一个任务是进行转换

然后,可以使用距离公式计算到给定坐标的距离,并将其作为列表中每个点的额外信息存储

然后按额外的距离排序。排序它不是最有效的方法,因为您可以先检索最小距离,然后在删除第一个后检索最小值,最后在删除找到的第一个最小值后再次检索最小值。但是,如果您对这种优化感兴趣,请自己尝试一下

排序后,从结果数组中分割前三个元素并返回该元素。您可能希望将这三个项目转换回原始格式,即三个字符串的数组

以下是一个片段:

函数closestThreedata,px,py{ 返回数据 .map s=>s.split','.mapNumber//转换为成对的数字 .map[x,y]=>[x,y,x-px*x-px+y-py*y-py]//添加平方距离 .sort a,b=>a[2]-b[2]//按距离排序 .0,3//首先获得三个结果 .map[x,y]=>x+','+y;//转换回字符串 } //样品 常量点=['1235432'、'432325'、'7351045'、'583564']; 常数res=最接近的三个点405630;
console.logres;请至少分享一个示例输出,好吗?