如何创建一个确定2个数字之间的值的函数

Alo*_*lon 6 javascript object

我有这个数字范围:

0  -------> 25 ------->  80 ------> 150
    small      medium       large
Run Code Online (Sandbox Code Playgroud)

我想收到0到150之间的数字,并显示它是小,中还是大.30和45是中等的,因为它们在25到80之间,而5是小的,因为它低于25.

我想创建一个为此对象执行此匹配的函数:

var sizeMap = { small : 25, medium : 80, large : 150 }
Run Code Online (Sandbox Code Playgroud)

(假设0是最低的数字).

该函数应如下所示:

function returnSize(number) {
    for (item in sizeMap)
       ???????
    return size
}
Run Code Online (Sandbox Code Playgroud)

如何编写此函数,以便可以灵活地添加新类别(例如:'extra large':250).我应该将对象呈现为数组吗?

Jor*_*dão 3

为了获得确定性的输出,我更喜欢有一个按相关类别排序的数组:

var categories = [ 
  {label: 'small', upTo: 25}, 
  {label: 'medium', upTo: 80}, 
  {label: 'large', upTo: 150} ];
Run Code Online (Sandbox Code Playgroud)

(您甚至可以从原始数组创建这个数组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!");
}
Run Code Online (Sandbox Code Playgroud)