Maison > Questions et réponses > le corps du texte
P粉6800875502023-08-19 00:33:06
Vous pouvez rendre votre logique davantage basée sur les données en utilisant des objets, par exemple :
var outcomeMap = { active: { active: "a", locked: "b", disabled: "c" }, inactive: { active: "d", locked: "e", disabled: "f", } };
Vous pouvez alors utiliser a
访问该对象,并访问嵌套对象的值来设置您的outcome
variables, par exemple :
var outcome = outcomeMap[a][b];
Veuillez noter que si a
除了您提到的值之外还可以是任何其他值,最好在访问b
之前检查outcomeMap[a]
是否为undefined
。如果您的环境支持,可以使用可选链来完成,例如:outcomeMap[a]?.[b];
Vous pouvez également configurer un tableau contenant des combinaisons possibles, puis les parcourir pour vérifier si votre combinaison correspond. Ensuite, en fonction de l'index actuel, si un résultat est trouvé, vous pouvez indexer votre résultat (outcomes
), par exemple :
function getOutcome(a, b) { const aVals = ['active', 'inactive']; const bVals = ['active', 'locked', 'disabled']; const outcomes = [['a', 'b', 'c'], ['d', 'e', 'f']]; for(const [i, aVal] of aVals.entries()) { for(const [j, bVal] of bVals.entries()) { if (aVal == a && bVal == b) { return outcomes[i][j]; } } } // return ''; if you want a default value of empty string } const outcome = getOutcome('inactive','locked'); console.log(outcome);
Veuillez noter qu'aucune des deux méthodes n'est plus efficace que l'utilisation d'une instruction if. Cependant, si vous avez plus de possibilités, elles devraient être plus faciles à mettre à l’échelle.