如何用JS计算3个参数相互依赖的孔

How to calculate holes with 3 parameters dependent on each other with JS

我需要创建计算用户输入数据的简单程序。用户需要选择 3 个参数 - 大小、压力和单位。尺寸和压力来自 html select 选项 ,单位来自 input。我不知道如何开始我的计算代码...

示例:

size = 100, pressure = 6, units = 10 /// size 100 in pressure 6 有 8 个孔,尺寸为 M8,所以结果是 8*10 = 80 个孔 M8。

size = 100, pressure = 10, units = 10 /// size 100 in pressure 10 有 10 个孔尺寸为 M8,所以结果是 10*10 = 100 个孔 M8.

size 150, pressure = 10, units = 10 /// size 150 in pressure 10 有 12 个孔,尺寸为 M10,所以结果是 10*10 = 100 个孔 M10。

结束等等

孔的大小取决于输入大小。

多少孔取决于压力。

我需要指导如何开始我的计算代码。我尝试使用循环和 switch case,但是列出 50 1000 大小,4 到 20 压力的代码很多。

为了达到预期的结果,请使用以下选项创建一个对象,如属性,并将其与函数一起使用,以根据参数进行计算

  1. 创建具有大小、压力和相应乘数的对象
  2. 创建带参数的函数 - 大小、压力、单位
  3. Return 根据传递给具有属性对象值的函数的参数计算值
  4. 灵活地将新尺寸作为新对象添加到属性对象,而不是创建新的 switch case 或更新 switch case

var properties = {
50: {
   '6': {multiplier: 4},
  '10': {multiplier: 6},
  '16': {multiplier: 10},
  'na': {multiplier: 12}
 },
80: {
   '6': {multiplier: 6},
  '10': {multiplier: 8},
  '16': {multiplier: 20},
  'na': {multiplier: 24}
 },
100: {
   '6': {multiplier: 8},
  '10': {multiplier: 10},
  '16': {multiplier: 20},
  'na': {multiplier: 24}
 },
150: {
   '6': {multiplier: 8},
  '10': {multiplier: 10},
  '16': {multiplier: 16},
  'na': {multiplier: 26}
 }
}

function calculate(size, pressure, units){
   return properties[size][pressure] ? properties[size][pressure].multiplier* units : properties[size]['na'].multiplier * units ;
}

console.log("size = 100, pressure = 6, units = 10, caculated holes --> ", calculate(100, 6, 10)); // 80
console.log("size = 100, pressure = 10, units = 10, caculated holes --> ", calculate(100, 10, 10)); //100
console.log("size = 150, pressure = 10, units = 10, caculated holes --> ", calculate(150, 10, 10)); // 100

codepen - https://codepen.io/nagasai/pen/VVozqw?editors=1010