javascript - 如何创建一个函数来确定两个数字之间的值

标签 javascript object

我有这个数字范围:

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/

相关文章:

c# - 私有(private)类是否需要通过属性访问?

python - 对于对象列表中的对象列表问题python

java - java 幕后对象创建(java 对象实例化)

javascript - 等待 Observable 完成以提交表单

javascript - 如何检测 primefaces 日历元素的变化?

javascript - 如何使用 jqGrid editoptions 值的函数创建有效的字符串?

javascript - AngularJS - 使用 $resource 并与 RESTful 数据源交互

javascript - 事件不在 use 标签内触发

ios - uitableview 对象数组作为数据源

c - 如何读取目标文件的重定位记录