【发布时间】:2021-12-03 21:20:11
【问题描述】:
我有一个名为范围的数组和一个查找变量。现在我试图从我的范围数组中获取匹配的范围值。我试图减少方法,但它给了我一个意想不到的输出。
实际输出
- 我的值是 51,然后返回 100
预期输出
- Ex 1 - 我的值是 51 它在 0-100 之间它应该返回 0 Ex 2 - My 值是 135 它在 100-150 之间它应该返回 100
我的代码
var lookup = 51;
var range = [0, 100, 150, 200, 300, 300.2];
let filtered = range.reduce((prev, curr) => Math.abs(curr - lookup) < Math.abs(prev - lookup) ? curr : prev);
console.log(filtered); //100
在这种情况下不起作用
const lookup = 201;
const range = [200, 250, 300, 0, 450, 898].reverse();
const result = range.find(num => num <= lookup);
console.log(result); //0
【问题讨论】:
-
您需要明确您的范围是如何定义的。它们是从一个索引到下一个索引吗?所以
0...450如果是这样,那么200...250包含在该范围内。如果是这种情况,那么您想要它匹配的第一个范围还是最小范围?投票结束,直到您明确为止。
标签: javascript arrays typescript