Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的变量映射_Javascript_Mapping - Fatal编程技术网

Javascript中的变量映射

Javascript中的变量映射,javascript,mapping,Javascript,Mapping,下面的代码将-75到-90映射为-90到0,将90到75映射为0到90。有没有更简单的方法?如果有一个简单的方法可以做到这一点,那将是非常感谢,谢谢 if ((rtiltLR <= -75) && (rtiltLR >= -90)) { switch (rtiltLR) { case -75: yval = -90;

下面的代码将-75到-90映射为-90到0,将90到75映射为0到90。有没有更简单的方法?如果有一个简单的方法可以做到这一点,那将是非常感谢,谢谢

if ((rtiltLR <= -75) && (rtiltLR >= -90))
        {
            switch (rtiltLR)
            {
                case -75:
                    yval = -90;
                    break;
                case -76:
                    yval = -84;
                    break;
                case -77:
                    yval = -78;
                    break;
                case -78:
                    yval = -72;
                    break;
                case -79:
                    yval = -66;
                    break;
                case -80:
                    yval = -60;
                    break;
                case -81:
                    yval = -54;
                    break;
                case -82:
                    yval = -48;
                    break;
                case -83:
                    yval = -42;
                    break;
                case -84:
                    yval = -36;
                    break;
                case -85:
                    yval = -30;
                    break;
                case -86:
                    yval = -24;
                    break;
                case -87:
                    yval = -18;
                    break;
                case -88:
                    yval = -12;
                    break;
                case -89:
                    yval = -6;
                    break;
                case -90:
                    yval = 0;
                    break;
            }
        }

        if ((rtiltLR <= 90) && (rtiltLR >= 75))
        {
            switch (rtiltLR)
            {
                case 90:
                    yval = 0;
                    break;
                case 89:
                    yval = 6;
                    break;
                case 88:
                    yval = 12;
                    break;
                case 87:
                    yval = 18;
                    break;
                case 86:
                    yval = 24;
                    break;
                case 85:
                    yval = 30;
                    break;
                case 84:
                    yval = 36;
                    break;
                case 83:
                    yval = 42;
                    break;
                case 82:
                    yval = 48;
                    break;
                case 81:
                    yval = 54;
                    break;
                case 80:
                    yval = 60;
                    break;
                case 79:
                    yval = 66;
                    break;
                case 78:
                    yval = 72;
                    break;
                case 77:
                    yval = 78;
                    break;
                case 76:
                    yval = 84;
                    break;
                case 75:
                    yval = 90;
                    break;
            }
        }
if((rtiltLR=-90))
{
交换机(rtiltLR)
{
案例-75:
yval=-90;
打破
案例-76:
yval=-84;
打破
案例-77:
yval=-78;
打破
案例-78:
yval=-72;
打破
案例-79:
yval=-66;
打破
案例-80:
yval=-60;
打破
案例-81:
yval=-54;
打破
案例-82:
yval=-48;
打破
案例-83:
yval=-42;
打破
案例-84:
yval=-36;
打破
案例-85:
yval=-30;
打破
案例-86:
yval=-24;
打破
案例-87:
yval=-18;
打破
案例-88:
yval=-12;
打破
案例-89:
yval=-6;
打破
案例-90:
yval=0;
打破
}
}
如果((rtiltLR=75))
{
交换机(rtiltLR)
{
案例90:
yval=0;
打破
案例89:
yval=6;
打破
案例88:
yval=12;
打破
案例87:
yval=18;
打破
案例86:
yval=24;
打破
案例85:
yval=30;
打破
案例84:
yval=36;
打破
案例83:
yval=42;
打破
案例82:
yval=48;
打破
案例81:
yval=54;
打破
案例80:
yval=60;
打破
案例79:
yval=66;
打破
案例78:
yval=72;
打破
案例77:
yval=78;
打破
案例76:
yval=84;
打破
案例75:
yval=90;
打破
}
}
试试这个

if ((rtiltLR <= -75) && (rtiltLR >= -90))
    yval = (rtiltLR + 90) * -6;
else if ((rtiltLR <= 90) && (rtiltLR >= 75))
    yval = (90 - rtiltLR) * 6;
if((rtiltLR=-90))
yval=(rtiltLR+90)*-6;
否则,如果((rtiltLR=75))
yval=(90-rtiltLR)*6;

您的案例陈述和您的结果之间是否存在任何关系?如果有,那么肯定会有更好的方法来做到这一点。如果没有,您可以使用JavaScript对象,其中键作为case语句,值作为结果。例如:

var map = {
    "-75": -90,
    "-76": -84,
    // ...
    "76": 84,
    "75": 90
};
yval = map[rtiltLR.toString()]; // or just map[rtiltLR]


// or you could simplify things by computing negative values
var map = {
    "90": 0,
    // only positive values
    "75": 90
};
yval = rtiltLR > 0 ? map[rtiltLR] : -map[-rtiltLR];

如果可以计算yValue,那么显然应该立即进行计算

如果确实存在一长组任意映射,我建议使用hashmap:

yValueLookup = {};
yValueLookup[-75] = -90;
yValueLookup[-76] = -84;
// etc
yValueLookup[89] = 6;
yValueLookup[90] = 0;



function getYvalue(rtiltLR) {
   return yValueLookup[rtiltR];
}

@向下投票人请解释为什么给出向下投票,以便我可以改进我的问题不是我的向下投票…但在我看来,你应该能够解释将
-75
翻译为
-90
背后的思维过程。有趣的是,从那以后,你完成了90%的工作。啊,谢谢@cHao!将确保在未来的帖子中包含