例如我有这个数组:
const array = [5, 9, 12];
如果输入数字3
,则应返回5
,
如果输入数字5
,则应返回9
,
如果输入数字6
,则应返回9
,
如果输入数字12
,则应返回0
或null
或undefined
等等...
我尝试使用reduce方法,但是没有运气,找不到办法。
这是我到目前为止的结果,但是它将返回最接近的数字,而不是最接近的更高的数字:/
const number = arr.reduce((prev, curr) =>
curr <= input && Math.abs(input - curr) < Math.abs(input - prev) ? curr : prev
);
您可以简单地sort
(如果不能保证最初可以不进行排序,则可以忽略此步骤)这些值,并用于find
查找比传递的输入更大的值。
const array = [5, 9, 12];
const sorted = array.sort((a, b) => a - b)
const numChecker = num => sorted.find(v => v > num)
console.log(numChecker(3))
console.log(numChecker(6))
console.log(numChecker(9))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句