繁体   English   中英

我无法优化这段代码 javascript

[英]i can't optimize this piece of code javascript

我想优化这个,但我不知道如何。 我尝试使用“for”,但我不能。 有什么功能可以缩小这个吗? 抱歉,如果回复很简单,我是编码新手。

if (avis1 == 1) {
    avis1Phrase = 'Très insatisfait';
}
if (avis1 == 2) {
    avis1Phrase = 'Insatisfait';
}
if (avis1 == 3) {
    avis1Phrase = 'Moyen';
}
if (avis1 == 4) {
    avis1Phrase = 'Satisfait';
}
if (avis1 == 5) {
    avis1Phrase = 'Très satisfait';
}

if (avis2 == 1) {
    avis2Phrase = 'Très insatisfait';
}
if (avis2 == 2) {
    avis2Phrase = 'Insatisfait';
}
if (avis2 == 3) {
    avis2Phrase = 'Moyen';
}
if (avis2 == 4) {
    avis2Phrase = 'Satisfait';
}
if (avis2 == 5) {
    avis2Phrase = 'Très satisfait';
}

if (avis3 == 1) {
    avis3Phrase = 'Très insatisfait';
}
if (avis3 == 2) {
    avis3Phrase = 'Insatisfait';
}
if (avis3 == 3) {
    avis3Phrase = 'Moyen';
}
if (avis3 == 4) {
    avis3Phrase = 'Satisfait';
}
if (avis3 == 5) {
    avis3Phrase = 'Très satisfait';
}

if (avis4 == 1) {
    avis4Phrase = 'Très insatisfait';
}
if (avis4 == 2) {
    avis4Phrase = 'Insatisfait';
}
if (avis4 == 3) {
    avis4Phrase = 'Moyen';
}
if (avis4 == 4) {
    avis4Phrase = 'Satisfait';
}
if (avis4 == 5) {
    avis4Phrase = 'Très satisfait';
}

if (avis5 == 1) {
    avis5Phrase = 'Très insatisfait';
}
if (avis5 == 2) {
    avis5Phrase = 'Insatisfait';
}
if (avis5 == 3) {
    avis5Phrase = 'Moyen';
}
if (avis5 == 4) {
    avis5Phrase = 'Satisfait';
}
if (avis5 == 5) {
    avis5Phrase = 'Très satisfait';
}

if (avis6 == 1) {
    avis6Phrase = 'Très insatisfait';
}
if (avis6 == 2) {
    avis6Phrase = 'Insatisfait';
}
if (avis6 == 3) {
    avis6Phrase = 'Moyen';
}
if (avis6 == 4) {
    avis6Phrase = 'Satisfait';
}
if (avis6 == 5) {
    avis6Phrase = 'Très satisfait';
}

if (avisGeneral == 1) {
    avisGeneralPhrase = 'Très insatisfait';
}
if (avisGeneral == 2) {
    avisGeneralPhrase = 'Insatisfait';
}
if (avisGeneral == 3) {
    avisGeneralPhrase = 'Moyen';
}
if (avisGeneral == 4) {
    avisGeneralPhrase = 'Satisfait';
}
if (avisGeneral == 5) {
    avisGeneralPhrase = 'Très satisfait';
}

使用数组应该会有很大帮助。 代码示例(不完整):

 var avis1 = 5; var phrases = ['Très insatisfait', 'Insatisfait', 'Moyen', 'Satisfait', 'Très satisfait']; var avis1Phrase = phrases[avis1 - 1]; // javascript arrays always start at [0] console.log(avis1Phrase);

也许您可以将值从 0 更改为 4 而不是 1 到 5 并使用如下数组

var phrase = [
    'Très insatisfait',
    'Insatisfait',
    'Moyen',
    'Satisfait',
    'Très satisfait'
];

然后您可以使用以下方法获得适当的短语:

var avis1Phrase = phrase[avis1];

其中 avis1 应为 0 到 4 之间的值。

因此,如果您不想更改您的值,那么您可以使用JSON 哈希而不是数组,如下所示:

var phrase = {
    1:'Très insatisfait',
    2:'Insatisfait',
    3:'Moyen',
    4:'Satisfait',
    5:'Très satisfait'
};

在这种情况下,您可以使用以下方法获取适当的短语:

var avis1Phrase = phrase[avis1];

其中 avis1 应为 1 到 5 之间的值。

此外,也许您应该考虑为您的变量 avis1、...、avis6、avisGeneral 制作一个数组或 JSON 哈希。 我的意思是,像这样:

var avis = {
    1: my1stValue,
    ...
    6: my6thValue,
    General: myGeneralVaulue
};

我认为你可以使用 switch 语句

 switch (new Date().getDay()) {
case 0:
    day = "Sunday";
    break;
case 1:
    day = "Monday";
    break;
case 2:
    day = "Tuesday";
    break;
case 3:
    day = "Wednesday";
    break;
case 4:
    day = "Thursday";
    break;
case 5:
    day = "Friday";
    break;
case  6:
    day = "Saturday";

}

你可以使用一个对象。

var text = { 
    1: 'Très insatisfait',
    2: 'Insatisfait',
    3: 'Moyen',
    4: 'Satisfait',
    5: 'Très satisfait'
};

使用权

avis1Phrase = text[avis1];
// Since all the phrases for all the 'avis' are the same, you can reuse the same array.
var phrases = [
        'Très insatisfait',
        'Insatisfait',
        'Moyen',
        'Satisfait',
        'Très satisfait'
    ],
    // index starts at 0, so avis1 minus 1 gives the correct index.
    avis1Phrase = phrases[ avis1 - 1 ],
    avis2Phrase = phrases[ avis2 - 1 ],
    avis3Phrase = phrases[ avis3 - 1 ],
    avis4Phrase = phrases[ avis4 - 1 ],
    avis5Phrase = phrases[ avis5 - 1 ],
    avis6Phrase = phrases[ avis6 - 1 ],
    avisGeneralPhrase = phrases[ avisGeneral - 1 ];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM