Как вы можете оптимизировать следующий JS заявление:Javascript Простые головоломки
obj.endDate = obj.status && (obj.status.length == 2 || (obj.status.length == 1 && obj.status[0] == 0)) ? undefined : obj.endDate;
где
obj.status
имеет тип массива и имеет право принимать только следующие значения:
- [1 ]
- [0]
- [1,0]
- неопределенный
obj.status
может или не может быть неопределенными.
Вопросы по улучшению рабочего кода лучше всего задавать в [Обзор кода] (http://codereview.stackexchange.com/). – lenz
Если вы имеете в виду оптимизировать что-то вроде «как я могу сделать этот код более понятным», тогда мы должны лучше понять, чего вы хотите достичь. Я понял следующее из вашего кода: 'if_Array_has_two_values или Array_has_one_value_and_it_is_zero', а затем установить endDate в undefined. Поэтому я предполагаю, что есть причина для этого. Если вы можете объяснить логику этой проверки, это может помочь создать некоторые функции со значениями полных имен. Что это значит '(если obj.status == [0] или obj.status == [1,0])' Это означает что-то вроде 'contract not terminated'? – surfmuggle