如何用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 压力的代码很多。
为了达到预期的结果,请使用以下选项创建一个对象,如属性,并将其与函数一起使用,以根据参数进行计算
- 创建具有大小、压力和相应乘数的对象
- 创建带参数的函数 - 大小、压力、单位
- Return 根据传递给具有属性对象值的函数的参数计算值
- 灵活地将新尺寸作为新对象添加到属性对象,而不是创建新的 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
我需要创建计算用户输入数据的简单程序。用户需要选择 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 压力的代码很多。
为了达到预期的结果,请使用以下选项创建一个对象,如属性,并将其与函数一起使用,以根据参数进行计算
- 创建具有大小、压力和相应乘数的对象
- 创建带参数的函数 - 大小、压力、单位
- Return 根据传递给具有属性对象值的函数的参数计算值
- 灵活地将新尺寸作为新对象添加到属性对象,而不是创建新的 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