javascript - 在 N 个区间内拆分最小值和最大值的范围
问题描述
我有一个数组min
和max
。我需要一个类似于这个问题的解决方案,但我也有一个min
价值。例如,我有一个数组[108090, 498090]
。如何min
在以下函数中添加条件?
function getIntervalls(max, nbIntervalls) {
var size = Math.round((max-1) / nbIntervalls);
var result = [];
for (let i = 0; i < nbIntervalls; i++) {
var inf = i + i * size;
var sup = inf + size < max ? inf + size: max;
result.push([inf, sup]);
if(inf >= max || sup >= max)break;
}
return result;
}
getIntervals(108090, 5)
上述函数的输出为:
[
[
0,
99618
],
[
99619,
199237
],
[
199238,
298856
],
[
298857,
398475
],
[
398476,
498090
]
]
但我也想发送min
价值。所以我的要求应该是[108090, ...], [..,..], [..,..], [..,..], [..,498090]
.
提前致谢!!!
解决方案
- 我要做的是将值减去该
min
值max
,因此您现在正在处理与作为参数传递的间隔线性相关的数字。 - 然后,当您推送结果值时,只需再次添加最小值:
function getIntervals(min, max, nbIntervalls) {
max -= min; // --------------------------> subtract min
var size = Math.round((max-1) / nbIntervalls);
var result = [];
for (let i = 0; i < nbIntervalls; i++) {
var inf = i + i * size;
var sup = inf + size < max ? inf + size: max;
result.push([inf + min, sup + min]); // --------------------> add again min
if(inf >= max || sup >= max)break;
}
return result;
}
console.log(getIntervals(108090, 498090, 5))
推荐阅读
- php - php artisan optimize NULL.ERROR: Symfony\Component\Debug\Exception\FatalThrowableError: Call to undefined method Illuminate\Foundation\Bootstrap
- c# - IError CS1003 统一?
- react-native - 天才聊天:选择发送按钮后如何保持焦点输入(RN,Native-base,giftedchat)
- excel - 如何根据 Excel 或 Google 表格中的列上的值提取行信息?
- python - 使用 numba 在周期性条件下切片 numpy-array
- node.js - 相同字符串的哈希值与更改密码功能不匹配
- java - JavaDoc 错误:datatypeConverter 不存在
- caching - 使用 Netlify 部署时出现“Uncaught SyntaxError: Unexpected token <”
- spring - 在 Oracle 中超过 5 年的 Spring Boot 记录
- java - 我应该怎么做才能让一个新实例比上一个实例正好高 1?(UML 到 Java 代码)