最近在解决一个问题的时候遇到一个这样的需求:
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 = '<div>当r=' + item.r + ',R=' + item.R + ',h2=' + item.h2 + '以及L=' + numlist + '时,C = ' + C + '</div>'; document.write(outputlist); }) })
最后得到的结果是:github获取js源代码
假设有一个需求,我们需要把上述r,R,h2,L对应生成C值的一个excel,我们该怎么做呢?
就像上述的图片显示的表格一样。
未完待续...