【发布时间】:2021-01-26 15:08:18
【问题描述】:
我正在尝试使用一个填充了数字的列,并使用最小值和最大值来生成一个过滤范围列表,供用户过滤表格。使用幼稚的方法最终会导致难以处理数字范围,我真的希望有可以不管最小/最大值如何工作的整数。
我在好几个地方都看到过这个问题,并且认为我迄今为止找到的最佳答案是Stuart Ainsworth's number table answer,但我希望有非常圆的步骤。
例如,如果我需要生成 0-100000 的 4 个范围,则数字将是:
0 - 25000
25000 - 50000
50000 - 75000
75000 - 100000
但是,如果我的最小值和最大值是奇数,我会很尴尬地使用范围。
示例:如果我需要生成从 -1234 到 4321 的 5 个范围,范围是:
-1234 - -123
-123 - 988
988 - 2099
2099 - 3210
3210 - 4321
我更喜欢这样的范围:
-1234 - 0 -1234 - 0 -1234 - -100
0 - 1000 0 - 1000 -100 - 1000
1000 - 2100 1000 - 2000 1000 - 2100
2100 - 3200 2000 - 3000 2100 - 3200
3200 - 4321 3000 - 4321 3200 - 4321
或类似的东西。范围的大小需要彼此接近,但更重要的是数字易于查看和使用。
【问题讨论】:
-
“算术级数”可以解决这个问题。明确地说,一个自定义函数,它接受一个值并返回你想要的值。可能需要两个函数。一个用于值的下限,一个用于上限值。如果我能让它工作,我会尽快发布解决方案
-
@GetSet,是吗?算术级数不是固定范围,而 OP 表示有兴趣对数字/范围进行模糊测试,以便产生更容易理解的最小值和最大值。
-
@SpencerD 即便如此,一些辅助函数也会有所帮助。我开始研究一个解决方案,它“参数化”了“绑定增量”,所以灵活性仍然是可能的
-
从“希望范围喜欢”的外观来看,第一个范围 min 是最小值本身。最后一个范围的最大值是最大值本身。第二个范围的最小值和最大值约为 1,000。随后的范围约为 1,100。可以分阶段进行“算术级数”@SpencerD
标签: javascript math range sequence