如果然后从列表中选择
在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
使用的字典(作品类似ENUM):
var dictionary = {"category1": 1, "category2": 2, "category3": 3};
i = dictionary[id]
这里是一个开关案例:
switch(id){
case 'category1':
i = 1;
break;
case 'category2':
i = 2;
break;
case 'category3':
i = 3;
break;
}
我喜欢过的switch-case方法的字典的方法,因为它是一个位代码少写每次你添加一个新的类别。
为什么选择投票? –
因为这是一个糟糕的答案 - 如果你有50个类别会发生什么?这比OP已经有多好? – Shomz
@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;
}
好的,我想出了开关功能。我对我在https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/switch上看到的代码感到困惑。你的例子非常清楚。现在我看到它了,“Case”是Visual Basic中使用的语法。 – Matt
是的,'console.log'可能是调试JS中最快/最简单的方法。不过,我强烈建议您使用我的第一段中的一种方法,因为只要它们的格式为“categoryXX”',就不必在添加/删除类别时进行任何手动工作。 – Shomz
我结束了使用“词典”,但切换也是一个非常好的选择。当我提出这个问题并且很好地了解未来的项目时,这就是我想到的。啊! 。 。 。 console.log。 。 。我现在明白了。我在两天内学到了很多关于JavaScript的知识。谢谢你的帮助。 – Matt
你在寻找['switch'语句](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/switch)吗? –
@JamesThorpe开关是马上跳出来给我的 – mhodges
开关已经足够接近你以后的... –