最近在解决一个问题的时候遇到一个这样的需求:
1)有两个存在关联的数学表达式,表达式1:计算得到h1
function outputH1(R, r, h) {
var V = (Math.PI / 3) * (Math.pow(R, 2) + R * r + Math.pow(r, 2)) * h;
var h1 = V / (Math.PI * Math.pow(r, 2));
return h1;
}
2) 表达式2 根据不同R,r,h的值得到不同h1后 代入公示2,计算得到C
//表达式1 的取值
// r,R,h2取值表
var listNum = [
{r: 0.4,R: 1,h2: 0.5},
{r: 0.5,R: 1.2,h2: 0.6},
{r: 0.6,R: 1.5,h2: 0.7},
{r: 0.7,R: 1.75,h2: 0.8},
{r: 0.8,R: 1.95,h2: 0.9},
{r: 0.9,R: 2.2,h2: 1.0},
];
//公示2的取值
// L的取值表
var numlist = [30, 35, 40, 45, 50, 55, 60];
计算:
/* 计算 得到h1 调用outputH1
@param: R
@param: r
@param: h 对应的是h2
*/
function outputH1(R, r, h) {
var V = (Math.PI / 3) * (Math.pow(R, 2) + R * r + Math.pow(r, 2)) * h;
var h1 = V / (Math.PI * Math.pow(r, 2));
return h1;
}
// 遍历 L的值 分别计算C
numlist.forEach(function (item, index) {
var numlist = item;
listNum.forEach(function (item, index) {
// 得到每一个h1
var h1 = outputH1(item.R, item.r, item.h2).toFixed(4);
// 得到每一个C
var C = (942 / (h1 + numlist)).toFixed(0);
var outputlist = '当r=' + item.r + ',R=' + item.R + ',h2=' + item.h2 + '以及L=' + numlist + '时,C = ' + C + '';
document.write(outputlist);
})
})
最后得到的结果是:github获取js源代码
假设有一个需求,我们需要把上述r,R,h2,L对应生成C值的一个excel,我们该怎么做呢?
就像上述的图片显示的表格一样。
未完待续...