Javascript 如果需要,则从列表中选择

Javascript 如果需要,则从列表中选择,javascript,jquery,Javascript,Jquery,在JavaScript中,有没有一种方法可以从列表中选择if-then。我记得是用visualbasic做的 所以不是 if (id == "category1") {i = 1}; if (id == "category2") {i = 2}; if (id == "category3") {i = 3}; 有类似的吗 if.select ( category1 = 1 category2 = 2 category3 = 3 你可以跳出框框思考: var i = id.spl

在JavaScript中,有没有一种方法可以从列表中选择if-then。我记得是用visualbasic做的

所以不是

if (id == "category1") {i = 1};
if (id == "category2") {i = 2};
if (id == "category3") {i = 3};
有类似的吗

if.select (

  category1 = 1
  category2 = 2
  category3 = 3

你可以跳出框框思考:

var i = id.split('category')[1];
您可以将其设置为一个函数:

function getCategoryId(id){
    return id.split('category')[1];
}
然后就这样称呼它:

var i = getCategoryId('category1');
您也可以使用
substr
,它的性能最好(不过是纳秒)


现场观看:

var id='category2';
函数getCategoryId(id){
返回id.split('category')[1];
}

警报(getCategoryId(id))你可以跳出框框思考:

var i = id.split('category')[1];
您可以将其设置为一个函数:

function getCategoryId(id){
    return id.split('category')[1];
}
然后就这样称呼它:

var i = getCategoryId('category1');
您也可以使用
substr
,它的性能最好(不过是纳秒)


现场观看:

var id='category2';
函数getCategoryId(id){
返回id.split('category')[1];
}
警报(getCategoryId(id))使用字典(工作原理类似于枚举):

以下是一个交换机案例示例:

switch(id){
  case 'category1':
    i = 1;
    break;
  case 'category2':
    i = 2;
    break;
  case 'category3':
    i = 3;
    break;
}
我更喜欢dictionary方法而不是switch case方法,因为每次添加新类别时编写的代码要少一些。

使用dictionary(与enum的工作原理类似):

以下是一个交换机案例示例:

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


我更喜欢字典方法而不是开关盒方法,因为每次添加新类别时编写的代码都少了一点。

你在找吗?@JamesThorpe开关是我马上想到的,而且开关与你想要的东西非常接近……
I=+(id.replace(/[a-zA-z]/g,”)
?你在找吗?@JamesThorpe开关是我马上想到的,而且开关离你要找的东西足够近了…
i=+(id.replace(/[a-zA-z]/g,”)
?因为这是一个糟糕的答案-如果你有50个类别会发生什么?这比OP已有的更好吗?@Shomz如果类别是“示例”:1,“用例”:2,“等等”:3?假设类别以字符串“category”开头,您的答案将进行解析。我的答案还建议使用
开关
,但我们在这里讨论您的答案。(当然,请随意评论我下面的问题,但让我们继续讨论这个话题)@controlnetictwerkguroorc字典变量似乎是这个问题的简单答案。在这种情况下,数字总是按类别进行,但这又有什么关系呢。这似乎适用于字典中的任何条目。如果交换机是一个更好的解决方案,我肯定想知道如何使用它。“我查过了,我想不出来。@马特,如果你是这样建立你的ID的,那么我总是选择使用一行代码,而不是所有的手工工作(包括这个和切换解决方案)。因为这是一个糟糕的答案-如果你有50个类别会怎么样?”?这比OP已有的更好吗?@Shomz如果类别是“示例”:1,“用例”:2,“等等”:3?假设类别以字符串“category”开头,您的答案将进行解析。我的答案还建议使用
开关
,但我们在这里讨论您的答案。(当然,请随意评论我下面的问题,但让我们继续讨论这个话题)@controlnetictwerkguroorc字典变量似乎是这个问题的简单答案。在这种情况下,数字总是按类别进行,但这又有什么关系呢。这似乎适用于字典中的任何条目。如果交换机是一个更好的解决方案,我肯定想知道如何使用它。我查过了,但我想不出来。@Matt,如果你是这样建立你的ID的,那么我总是选择使用一行代码,而不是所有的手工工作(包括这个和切换解决方案)。好的,我算出了切换功能。我被我看到的代码弄糊涂了。你的例子很清楚。现在我看到,“Case”是VisualBasic中使用的语法。是的,
console.log
可能是在JS中调试东西的最快/最简单的方法。但是,我强烈建议您使用我第一段中的方法之一,因为在添加/删除类别时,只要它们的格式是
“categoryXX”
,您就不必进行任何手动操作。我最终使用了“dictionary”,但切换也是一个非常好的选择。这就是我问这个问题时的想法,我很高兴知道未来的项目。啊。console.log。我现在明白了。在两天的时间里,我学到了很多关于JavaScript的知识。谢谢你的帮助。好的,我算出了开关的功能。我被我看到的代码弄糊涂了。你的例子很清楚。现在我看到,“Case”是VisualBasic中使用的语法。是的,
console.log
可能是在JS中调试东西的最快/最简单的方法。但是,我强烈建议您使用我第一段中的方法之一,因为在添加/删除类别时,只要它们的格式是
“categoryXX”
,您就不必进行任何手动操作。我最终使用了“dictionary”,但切换也是一个非常好的选择。这就是我问这个问题时的想法,我很高兴知道未来的项目。啊。console.log。我现在明白了。在两天的时间里,我学到了很多关于JavaScript的知识。谢谢你的帮助。