如果然后从列表中选择

如果然后从列表中选择

问题描述:

在JavaScript中,有没有一种方法可以从列表中选择。我记得在Visual Basic中做这件事。如果然后从列表中选择

所以不是

if (id == "category1") {i = 1}; 
if (id == "category2") {i = 2}; 
if (id == "category3") {i = 3}; 

有什么样

if.select (

    category1 = 1 
    category2 = 2 
    category3 = 3 
+1

你在寻找['switch'语句](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/switch)吗? –

+0

@JamesThorpe开关是马上跳出来给我的 – mhodges

+0

开关已经足够接近你以后的... –

使用的字典(作品类似ENUM):

var dictionary = {"category1": 1, "category2": 2, "category3": 3}; 
i = dictionary[id] 

JSFiddle

这里是一个开关案例:

switch(id){ 
    case 'category1': 
    i = 1; 
    break; 
    case 'category2': 
    i = 2; 
    break; 
    case 'category3': 
    i = 3; 
    break; 
} 

我喜欢过的switch-case方法的字典的方法,因为它是一个位代码少写每次你添加一个新的类别。

+0

为什么选择投票? –

+0

因为这是一个糟糕的答案 - 如果你有50个类别会发生什么?这比OP已经有多好? – Shomz

+0

@Shomz如果这些类别是“示例”,那该怎么办:1,“用例”:2,“etc”:3?你的答案解析,假设类别以字符串“category”开头。 –

可以条条框框:

var i = id.split('category')[1]; 

你可以把它的功能:

function getCategoryId(id){ 
    return id.split('category')[1]; 
} 

然后只是把它想:

var i = getCategoryId('category1'); 

您还可以使用substr,它将执行最好的(在谈论纳秒,虽然)。


看到它住在这里:

var id = 'category2'; 
 
function getCategoryId(id){ 
 
    return id.split('category')[1]; 
 
} 
 
alert(getCategoryId(id));


或者只是使用switch

switch(id){ 
    case 'category1': 
    i = 1; 
    break; 
    case 'category2': 
    i = 2; 
    break; 
    case 'category3': 
    i = 3; 
    break; 
} 
+0

好的,我想出了开关功能。我对我在https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/switch上看到的代码感到困惑。你的例子非常清楚。现在我看到它了,“Case”是Visual Basic中使用的语法。 – Matt

+0

是的,'console.log'可能是调试JS中最快/最简单的方法。不过,我强烈建议您使用我的第一段中的一种方法,因为只要它们的格式为“categoryXX”',就不必在添加/删除类别时进行任何手动工作。 – Shomz

+0

我结束了使用“词典”,但切换也是一个非常好的选择。当我提出这个问题并且很好地了解未来的项目时,这就是我想到的。啊! 。 。 。 console.log。 。 。我现在明白了。我在两天内学到了很多关于JavaScript的知识。谢谢你的帮助。 – Matt