javascript - 计算数字落入的范围

标签 javascript math

我试图了解一个数字属于哪个范围。我的意思是,假设比例尺为 900,我们将其分为 4 个区域。

function getLocationRange(input){
  const slices = 4;
  const scale = 900;

  const slice = scale / slices;


  if(input < slice){
    return 0;
  } else if (input < slice * 2) {
    return 1;
  } else if (input < slice * 3) {
    return 2;
  } else if (input < slice * 4) {
    return 3;
  }
}

getLocationRange(50); // 0
getLocationRange(800); // 3
getLocationRange(400); // 1

基本上,如果输入数字属于第一季度,则返回 0,第二季度返回 1,依此类推...

问题是,这无法扩展,因为我需要为每个切片使用 else 语句(假设我想用 6 个切片或 100 个切片来运行它)。

有没有一个简单的数学方程可以达到同样的效果? (不必担心负数或大于或等于比例。)

最佳答案

getRange(input, scale, slices) {
    return Math.floor(input / (scale / slices));
}

关于javascript - 计算数字落入的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52864832/

相关文章:

math - 使用简短的贝塞尔曲线列表来近似点列表

math - 间隔之间的插值,按照贝塞尔曲线插值

javascript - 仅当所有 If 语句都不起作用时,如何使 else 语句起作用

javascript - 来自 Angular2 的 ES6-shim 与 Typescript lib.es6.d.ts 冲突

math - SSIS · 三角函数

java - 如何获得数组中的多重模式?

javascript - Web Worker 内存泄漏?

javascript - Backbone 模型是单例吗?

javascript - HTML 文本,为隐藏字段设置相同的值

function - 可变数量和函数的正确行为