【问题标题】:What's the quickest way to assign a variables based on an array?基于数组分配变量的最快方法是什么?
【发布时间】:2017-11-10 17:37:23
【问题描述】:

从可读性/打字的角度来看,根据相关变量为特定变量赋值的最快方法是什么?

var abbrev;

if(state=='Pennsylvania'){
    abbrev='PA';
}else if(state=='New Jersey'){
    abbrev='NJ';
}else if(state=='Delaware'){
    abbrev='DE';
}
//and so on...

我试图避免为州名创建一个数组,为缩写创建另一个数组,因为单独声明会丢失关系。

【问题讨论】:

  • 使用Map(JS 中的Object)。然后你可以让字符串键指向字符串值(例如:obj['Pennsylvania'] = 'PA'
  • 您需要 some 方法将状态与缩写相关联,因此您最好的选择可能实际上是一个关联数组。 “最佳”选项是主观的,取决于您个人认为的“最佳”选项。这四个选项基本上是 if/else 语句、switch 语句、关联数组或映射。

标签: javascript arrays iteration assign


【解决方案1】:

您可以使用object 作为缩写,例如

var abbreviations = {
        'Pennsylvania': 'PA',
        'New Jersey': 'NJ',
        'Delaware': 'DE'
    };

用法:

abbrev = abbreviations[state];

【讨论】:

  • 正是我需要的。谢谢。
【解决方案2】:

只是一个建议,您是否尝试过使用 CASE?它看起来更干净可读

【讨论】:

    【解决方案3】:

    试试看:

    var abbrev = '';
        if(state.indexOf(' ') == -1){
        abbrev = state.substring(0,2).toUpperCase();
        }else{
        var firstLetter = state.substring(0,1).toUpperCase();
        var secoundLetter = state.substring(state.indexOf(' '),1).toUpperCase();
        abbrev = firstLetter  + secoundLetter;
        }
        alert(abbrev);
    

    【讨论】:

    • 这不适用于宾夕法尼亚州或德克萨斯州等由一个单词组成的州。
    • 让我们从beginning开始...Alaska:AK
    • 我是巴西人,我不知道美洲各州,就我而言,此代码有效:Acre - AC、Alagoas - AL、Amazonas - AM、São Paulo - SP、Bahia - BA、Belo奥里藏特 - BH,米纳斯吉拉斯州 - MG,等等...... ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 2017-12-08
    • 2018-05-15
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    相关资源
    最近更新 更多