var type = ''; // type is from somewhere
if(type == 'a'){
type = 1;
}else{
type = 2;
}
Как упростить выше, если инструкция else, использующая сокращенное обозначение JS?Javascript одна строка, если else стенограмма путаницы
var type = ''; // type is from somewhere
if(type == 'a'){
type = 1;
}else{
type = 2;
}
Как упростить выше, если инструкция else, использующая сокращенное обозначение JS?Javascript одна строка, если else стенограмма путаницы
Я не уверен, что вы подразумеваете под «сокращением JS», но, возможно, вы ищете ternary conditional operator?
type = (type == 'a') ? 1 : 2;
это он! но я пробовал без скобки, он тоже работал, является ли скобка обязательной? –
@JamesLemon: Скобки не всегда необходимы, это зависит от приоритета оператора. Учитывая количество операторов в заявлении, я лично считаю, что это делает его более ясным. – David
что еще может быть оператором, кроме '=='? –
Вы можете использовать тройной оператор, называемый также условный оператор, рядный, если (IIF), или тройные если. В вашем примере, это будет выглядеть как показано на следующем:
type = type == 'a' ? 1 : 2;
Больше информации в Википедии: http://en.wikipedia.org/wiki/%3F:
у вас есть больше возможностей, чем просто тройным, особенно с учетом того, что 1
не falsy
type = {'a': 1}[type] || 2;
Более сложный, чем тройной, без реальной выгоды. – Vitruvius
@ Преимущества использования начинаются, когда у вас есть большое количество опций, т. Е. Этот ответ является очень простым поиском словаря со значением по умолчанию. –
Ну, вы могли бы сократить это до 'var type = 2;' – David
@David типа от где-то .. –