2016-02-06 4 views
3

Я хочу достичь логики ниже, используя тройную операцию javascript. Это возможно?javascript trernary condition operation

if(condition1){ 
    console.log("condition1 pass"); 
} else if(condition2){ 
    console.log("condition2 pass"); 
} else{ 
    console.log("It is different"); 
} 
+0

функция тройная (a, b) { (a> b)? console.log («a больше»): (a Leron

+10

Возможно? Да. Хорошая идея? Нет, наверное, нет. –

ответ

2

Да, это так. Используя следующую логику:

var output = ((condition1) ? 'condition1 pass' : ((condition2) ? 'condition2 pass' : 'It is different')); 

console.log(output) 
5

Конечно, вы просто должны иметь одно тройное внутри другого:

Поместить состояние else if внутри : части.

console.log(
    condition1 
     ? "condition1 pass" 
     : condition2 
      ? "condition2 pass" 
      : "it is different" 
); 

Это лучше не делать это в синтаксисе легко ошибочное и тонкий, вы можете, однако, переместить это функция или IIFE, если это уже внутри функции и вернуть результат непосредственно сократить цикл:

function testCondition(condition1, condition2){ 
    if(condition1){ 
     return "condition1 pass"; 
    } else if(condition2){ 
     return "condition2 pass"; 
    } 
    return "It is different"; 
} 

var conditionalPass = (function(condition1, condition2){ 
    if(condition1){ 
     return "condition1 pass"; 
    } else if(condition2){ 
     return "condition2 pass"; 
    } 
    return "It is different"; 
})(condition1, condition2); 
+0

Не знаете, насколько тонкий синтаксис не является хорошим, и за что его можно было бы ошибиться. Отступы и выдающееся расположение операторов делают это очень легким для чтения и понимания. – Bergi

+0

Пока я поклонник тройных операторов, я лично видел, как люди случайно удаляют? или: персонажи, не зная, каковы они – Quill

1

это возможно, но не рекомендуется:

console.log(condition1? "condition1 pass": (condition2? "condition2 pass": "It is different")); 

Как вы можете видеть, что код очень сложно читать.

1

Возможно, но рекомендуется.

console.log(
    condition1?//if 
     "condition1 pass": 
    condition2?//else if 
     "condition2 pass"://else 
     "It is different" 
) 

Как вы можете видеть, его очень легко прочитать.

+0

Есть ли «не» отсутствует и последнее предложение должно быть саркастическим? – Bergi

+0

@ Bergi * No. Это правда. * Но если парень сделает тройной инлайн, тогда это будет трудно понять. – Hydro

+0

Hm, "* возможно, но рекомендуется *" звучало странно. И на самом деле мне трудно читать с операторами в конце строки (в отличие от, например, отступа в ответе @Quills), особенно если перед ним нет пробелов. – Bergi