2016-05-17 4 views
2

Ich versuche, eine multiple OR-Variable zu erstellen, aber ich kann es nicht zum Funktionieren bringen. Ist meine Syntax oder Logik schlecht?SharePoint 2010 Jquery/JSON Rest Mehrere OR-Anweisung - wie?

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

Von dem, was ich habe recherchieren können || ist ein OR-Indikator und der? bezeichnet das Ergebnis der vorherigen Aussage, wo das "" ist, was passiert, wenn es keines von beiden gibt. Leider funktioniert das nicht. Irgendwelche Ideen?

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

oder dynamisch durch den ersten Buchstaben der Kategorie Wort extrahieren, zum Beispiel:

+0

Ich bin nicht sicher, ob die Kurz mit hier IF eine gute Idee, weil der RUP ist, die Sie übernehmen möchten. Haben Sie eine Switch-Anweisung in Betracht gezogen, die der Variablen basierend auf den unterschiedlichen Bedingungen einen Wert zuweist? –

Antwort

1

der ternäre Operator an sich in Ordnung ist. .. (mit den von Vadim vorgeschlagenen Korrekturen) sieht es aber sehr kompliziert aus. In diesem Fall würde ich eine switch-Anweisung wie folgt bevorzugen:

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

Danke Jungs, ich ging mit der unteren Lösung mit der Switch-Anweisung und das schien perfekt zu funktionieren. Gut zu wissen über beide Lösungen wird dies immens helfen. –

1

Sie könnten einen solchen Ausdruck ternary operator mit bauen

var category = i.Category.split(' ').map(function(item){return item[0]}).join('');