给定一个整数,搜索数组以返回javascript中整数所处的两个项

给定一个整数,搜索数组以返回javascript中整数所处的两个项,javascript,arrays,Javascript,Arrays,我有一系列这样的游戏关卡: levels=[{points:0, level:One},{points:200, level:Two},{points:0, level:Three}..] 我有一个积分计数器,其值随着游戏的进行而变化,即计数器=100。 如何搜索数组以查找计数器值介于哪些项目之间,并返回这两个项目的级别值?您可以使用数组过滤器方法进行搜索 示例 let levels=[{points:0,level:'One'},{points:200,level:'Two'},{poin

我有一系列这样的游戏关卡:

levels=[{points:0, level:One},{points:200, level:Two},{points:0, level:Three}..]
我有一个积分计数器,其值随着游戏的进行而变化,即计数器=100。
如何搜索数组以查找计数器值介于哪些项目之间,并返回这两个项目的级别值?

您可以使用
数组过滤器
方法进行搜索

示例

let levels=[{points:0,level:'One'},{points:200,level:'Two'},{points:300,level:'Three'}];
//例1
让userPoints=150;
让searchLevel=levels.filter(value=>userPoints>=value.points);
log(“示例1:”,searchLevel);
//例2
用户点=250;
searchLevel=levels.filter(value=>userPoints>=value.points);
log(“示例2:”,searchLevel)
let levels=[{点:0,级别:'1'},{点:200,级别:'2'},{点:400,级别:'3'}];
让计数器=210;
常量filteredLevels=levels.filter(x=>计数器>=x.points);
const maxPoint=Math.max.apply(Math,filteredLevels.map(p=>p.points));
var currentLevel=filteredLevels.find(y=>y.points===maxPoint);//结果

console.log(当前级别)到目前为止您尝试了什么?如果分数介于0和200之间,即150,该怎么办?如何让它返回级别为“一”的项?我已将逻辑从
value.points===userPoints
更改为
value.points>=userPoints
,您是否可以尝试此操作并让我知道它是否适用于您。示例2,其中userPoints=250将同时返回级别“一”和“二”。它是否应该返回具有最高点的级别,即“2”?示例2将只返回级别1和级别2,并且不包括级别3,因为用户尚未达到级别3。感谢Sohail-我正在考虑循环搜索结果的长度并返回第一个条目的级别值,但是您的响应很好地包含了期望的结果,将当前级别定义调整为大于或等于与严格等于可实现期望的目标:var current_level=filteredLevels.find(y=>y.points>=maxPoint);