我有这个数字范围:
0 -------> 25 -------> 80 ------> 150
small medium large
我想接收一个介于 0 到 150 之间的数字,并显示它是小、中还是大。 30 和 45 是中号,因为它们在 25 到 80 之间,5 是小号,因为它低于 25。
我想创建一个函数来为这个对象做这个匹配:
var sizeMap = { small : 25, medium : 80, large : 150 }
(假设 0 是最小的数字)。
函数应该是这样的:
function returnSize(number) {
for (item in sizeMap)
???????
return size
}
我该如何编写此函数,以便它可以灵活地添加新类别(例如:'extra large':250)。我应该将对象呈现为数组吗?
最佳答案
拥有一个deterministic output ,我希望有一个按相关类别排序的数组:
var categories = [
{label: 'small', upTo: 25},
{label: 'medium', upTo: 80},
{label: 'large', upTo: 150} ];
(您甚至可以从原始的 sizeMap
创建这个数组)
然后你可以做:
function getSizeCategory(number, categories) {
for (var i = 0; i < categories.length; ++i) {
if (number < categories[i].upTo) {
return categories[i].label;
}
}
throw new Error("not in range!");
}
关于javascript - 如何创建一个函数来确定两个数字之间的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12144964/