我正在编写一段代码来获取公司面板的价格。价格由4个变量决定。 1)priceLevel 2)仪表3)颜色4)面板。我将发布我到目前为止的内容。代码工作正常但我想知道是否有更简单,更有效的方式。面板的价格必须是var panelRate的值。
价格水平位置
var priceLevel;
if (retailPrice.checked)
{
priceLevel=0;
}
else if (contractorPrice.checked)
{
priceLevel=1;
}
else if (wholesalePrice.checked)
{
priceLevel=2;
}
规
var gauge;
if (gaugeNine.checked)
{
gauge="0";
}
else if (gaugeSix.checked)
{
gauge="1";
}
else if (gaugeFour.checked)
{
gauge="2";
}
else if (gaugeTwo.checked)
{
gauge="3";
}
else if (gaugeSeven.checked)
{
gauge="4";
}
颜色和面板类型的定义与上面显示的其他两种类似,但颜色从0到6,面板类型从0到9。
然后我使用4个数字来查找数组中的位置(下方),它保存了我需要的价格。
var panelPrice=[];
panelPrice[0]=[];
panelPrice[0][1]=[];
panelPrice[0][1][0]=[];
panelPrice[0][1][0][0]=1.99; //R,GU,29,TR
panelPrice[0][1][0][1]=2.99; //R,GU,29,RP
panelPrice[0][1][0][2]=3.75; //R,GU,29,C4
panelPrice[0][1][0][3]=4.33; //R,GU,29,C2
panelPrice[0][1][0][4]=5.51; //R,GU,29,5V
panelPrice[0][1][0][5]; //R,GU,29,SS
if (panelWidth=="16")
{
panelPrice[0][1][0][5]=6.11;
}
else if (panelWidth=="12")
{
panelPrice[0][1][0][5]=10.06;
}
panelPrice[0][1][0][6]=6.89; //R,GU,29,UP
panelPrice[0][1][0][7]=7.71; //R,GU,29,SF
panelRate=panelPrice[priceLevel][colorUp][gauge][panelUp];
任何帮助都将受到赞赏,因为我有超过1100种可能的组合。
答案 0 :(得分:0)
很棒的问题。
我会将这些不同的检查添加到数组中并循环遍历它们。尝试以下内容:
var prices = [retailPrice, contractorPrice, wholesalePrice],
gauges = [gaugeNine, gaugeSix, gaugeFour, gaugeTwo, gaugeSeven],
priceLevel, gauge;
// check prices
for (var i = 0; i < prices.length; i++) {
if (prices[i].checked) {
priceLevel = i;
break;
}
}
// check gauges
for (var i = 0; i < gauges.length; i++) {
if (gauges[i].checked) {
gauge = i;
break;
}
}
希望有所帮助!