Там может быть несколько возможных ответов на этот подход. Одна вещь, которую вы могли бы сделать, это сохранить состояние без оценки. Поэтому вместо разбора даты в выражении условия ее нужно проанализировать перед сравнением. После этого вы можете поставить наиболее частое условие, которое, по вашему мнению, часто бывает, в качестве первого условия и нарушить другие условия с использованием подхода бинарного поиска. Рассмотрим следующий фрагмент кода:
function setTime() {
var currentTime = Date.parse("3/4/2020, 2:53:42 PM")
var selectedTime = Date.parse("3/5/2020, 2:53:42 PM")
if(currentTime < selectedTime) {
callThisMethod('Current time less than selected time');
} else {
if (currentTime > selectedTime) {
callThisMethod('Current time Greater than selected time');
} else {
callThisMethod('Current time is equal to selected time');
}
}
}
function callThisMethod(message) {
console.log(message);
}
setTime();
Обратите внимание на то, как условные выражения разбиваются на части с использованием техники разбиения. Или вы можете использовать переключатель вместо условных. Было обнаружено, что случай переключения требует меньших дополнительных затрат на последующие условия по сравнению с условными операциями if-else. Рассмотрим следующий фрагмент:
function setTime() {
var currentTime = Date.parse("3/4/2020, 2:53:42 PM")
var selectedTime = Date.parse("3/5/2020, 2:53:42 PM")
switch(true){
case (currentTime > selectedTime):
callThisMethod('Current time Greater than selected time');
break;
case (currentTime < selectedTime):
callThisMethod('Current time less than selected time')
break;
default:
callThisMethod('Current time is equal to selected time')
}
}
function callThisMethod(message) {
console.log(message);
}
setTime();