UNPKG

find-closest

Version:

Like Array.prototype.find, but for finding the closest match.

3 lines (2 loc) 723 B
var e=function(e,r,n){for(var t={index:-1,distance:Number.POSITIVE_INFINITY,value:0},a=0;a<e.length;a++){var o=e[a],i=void 0;if(n){var u=n(o,{index:a,target:r,collection:e});switch(u){case!1:continue;case!0:if("number"!=typeof o)throw new TypeError("`filterMapFn` returned `true` for non-number value `"+o+"`.");i=o;break;default:i=u}}else{if("number"!=typeof o)throw new TypeError("Array contains non-number value `"+o+"` without a `filterMapFn` to map it to a number.");i=o}var f=Math.abs(i-r);if(0===f)return a;f<t.distance&&(t={index:a,distance:f,value:i})}return t.index},r=function(r,n,t){return r[e(r,n,t)]};exports.default=r,exports.findClosest=r,exports.findClosestIndex=e; //# sourceMappingURL=findClosest.js.map