2016-05-17 9 views
2

複数のOR変数を作成しようとしていますが、動作させることができません。構文やロジックが悪いですか?SharePoint 2010 Jquery/JSON Rest複数のOR文 - どのように?

var category = i.Category == "Electric" ? "E" || i.Category == "Power Module" ? "PM" || i.Category == "Branch Office" ? "BO" : ""; 

私が調査したところから|| ORインジケータであり、?前のステートメントの結果を示します。「:」はどちらもそうでない場合に起こります。残念ながら、これは動作しません。何か案は?例えば、カテゴリの単語の最初の文字を抽出することにより

var category = i.Category == "Electric" ? "E" : i.Category == "Power Module" ? "PM" : i.Category == "Branch Office" ? "BO" : ""; 

または動的

+0

私はよく分からないので、あなたが組み込むしようとしているORの良い考えである場合こちら速記を使用している場合。さまざまな条件に基づいて変数に値を割り当てるSwitch文を検討しましたか? –

答えて

1

三項演算子は、それ自体で結構です。 ..(Vadimが提案した訂正で)、それは非常に複雑に見えます。この場合、私はこのようなswitch文を好む:

function whatsMyCategory(i) { 
 
    var category = (i.Category == "Electric" ? "E" : i.Category == "Power Module" ? "PM" : i.Category == "Branch Office" ? "BO" : ""); 
 

 
    console.log("Category=" + category); 
 

 
    var cat = ""; 
 
    switch (i.Category) { 
 
    case "Electric": 
 
     cat = "E"; 
 
     break; 
 
    case "Power Module": 
 
     cat = "PM" 
 
     break; 
 
    case "Branch Office": 
 
     cat = "BO" 
 
     break; 
 
    default: 
 
     cat = ""; 
 
    } 
 

 
    console.log("Cat=" + cat); 
 
} 
 

 
whatsMyCategory({ 
 
    "Category": "Electric" 
 
}); 
 
whatsMyCategory({ 
 
    "Category": "Power Module" 
 
}); 
 
whatsMyCategory({ 
 
    "Category": "Branch Office" 
 
}); 
 
whatsMyCategory({ 
 
    "Category": "Something different" 
 
});

+0

皆さん、ありがとうございました。私はswitch文を使ってボトムソリューションに行きましたが、それは完全に動作するように見えました。両方のソリューションについて知っておくと、これは非常に役立ちます。 –

1

あなたがternary operatorを使用して、このような表現を構築することができ

var category = i.Category.split(' ').map(function(item){return item[0]}).join(''); 
関連する問題