Javascript 返回最接近的匹配对象

Javascript 返回最接近的匹配对象,javascript,arrays,Javascript,Arrays,我有一个关于在数组中查找对象的问题。我有一个包含如下对象的数组: var myArray = [{ index: 20, value: -1800000 }, { index: 21, value: -1200000 }, { index: 22, value: -10000 }, { index: 23, value: -1000 }, { index: 24, value: 0 }, { index: 25, value: 1000 }, { index: 26, value: 10000

我有一个关于在数组中查找对象的问题。我有一个包含如下对象的数组:

var myArray = [{ index: 20, value: -1800000 }, { index: 21, value: -1200000 }, { index: 22, value: -10000 }, { index: 23, value: -1000 }, { index: 24, value: 0 }, { index: 25, value: 1000 }, { index: 26, value: 10000 }, { index: 27, value: 1800000 }];
现在的问题是,如何返回值为==0的元素的索引,或者如果值为==0的元素不存在,则返回具有最小正值的对象的第一个索引。
我不需要排序数组,我只想得到一个值等于零或接近零但不为负的最佳匹配索引。

首先使用find,如果找不到什么,则循环排序数组并返回第一个正匹配:

var myArray=[{index:20,value:-1800000},{index:21,value:-1200000},{index:22,value:-10000},{index:23,value:-1000},{index:24,value:6},{index:25,value:1000},{index:26,value:10000},{index:27,value:1800000}]; 函数findClosestToZeroarr{ 设r=arr.findv=>v.value==0; 如果r返回r.index; arr.sorta,b=>a.value>b.value; 让我们一起去吧{ 如果o.value>0,返回o.index; } }
console.logfindClosestToZeromyArray;使用Array.find:。find将返回与提供给匿名函数的条件匹配的对象的第一个匹配项。如果find返回undefined,则找不到包含0的元素,因此执行第二次搜索,如果不需要任何排序,则可能再次进行查找。但是,如果您需要获得最接近0的值,您可能需要使用sort或filter和sort。请显示您的尝试。为什么不在排序之后立即使用filter?也许是另一个find@XufoxWhoops,我的意思是find。你可以在分拣后立即将其连锁。