#javascript
#javascript
Вопрос:
Я использую это, но это выглядит не так ясно:
if (!app.config.admin.examStatusId) {
app.config.admin.examStatusId = exam.examStatus.dataPlus[0].id;
}
Есть ли другой более понятный способ, которым я мог бы написать это без использования if ?
Комментарии:
1. Вы могли бы написать это как
app.config.admin.examStatusId = app.config.admin.examStatusId | exam.examStatus.dataPlus[0].id;
, но большая часть проблемы с ясностью связана с тем, что вы меняете глубокое свойство. В четко разработанной программе у вас, вероятно, будет переменная, значение которой будетapp.config.admin
.2. Это так же ясно, как и для меня?
3. Переместите тело
if
на следующую строку, и это будет выглядеть просто отлично.4. @adeneo как вы думаете, что следует сделать с этим вопросом?
5. @dystroy Вам не хватает еще одного
|
😉
Ответ №1:
Вы могли бы записать это как
app.config.admin.examStatusId = app.config.admin.examStatusId || exam.examStatus.dataPlus[0].id;
но у if
вас тоже все в порядке. Большая часть проблемы с ясностью возникает из-за того, что вы изменяете глубокое свойство: в четко разработанной программе у вас, вероятно, будет переменная, значение которой будет app.config.admin
. Редко приходится касаться удаленных подмодулей в программе.
Ответ №2:
!app.config.admin.examStatusId ? app.config.admin.examStatusId = exam.examStatus.dataPlus[0].id : /*something else if it is false*/
Это сокращенный метод для if / else, называемый троичной логикой. Вы можете прочитать немного больше об этом здесь: http://davidwalsh.name/php-shorthand-if-else-ternary-operators
Ответ №3:
Вы можете попробовать это:
app.config.admin.examStatusId = app.config.admin.examStatusId || exam.examStatus.dataPlus[0].id;