假设我们有:
const list = {
1: "a",
10: "b",
20: "c",
30: "d",
40: "e"
};
const value = 15;
如何有效地将值与对象键进行比较并获取相应较小范围的值?在此示例中,预期答案为 b
,因为 15 介于 10 和 20 之间。
我想走这条路:
for(var i=0; i < keys.length; i++){
const item = parseInt(keys[i],10);
if (item == keys[i]) {
return keys[i];
}
}
但是效率不高...
最佳答案
您可以使用Object.keys
它将获取新数组中的所有对象键,并在.some
中(按照@Keith的建议)停止循环( return true)
,当当前值大于value
时,结果将存储在previous
var
const list = {
1: "a",
10: "b",
20: "c",
30: "d",
40: "e"
};
const value = 15;
let previous = 0;
Object.keys(list).some(k => {
if (k > value) {
return true;
}
previous = k
});
console.log(list[previous]);
关于javascript 将数字与对象键进行比较并获取最小的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175986/