Мне нравится справочные таблицы:
if ({finished:1, uploading:1}[Progress.bar.status]){
//code here
}
это использует объект кода два или более вариантов, и даже побочные действия, цитируя каждый выбор. его также очень быстро, так как объект может быть кэширован, и нет никакой логики сравнения или методов для вызова, просто быстрый доступ к ресурсам, управляющий потоком ...
Обратите внимание, что в некоторых случаях вы можете использовать Object.create(null)
, а затем слияние/расширение этого пустого объекта с вашими параметрами, если вы абсолютно должны избегать ложных срабатываний для «hasOwnProperty», «valueOf», «toString», «toLocaleString», «конструктор» и нескольких расширений с двойным подчеркиванием. это не часто проблема, но это то, что нужно иметь в виду. если вы можете жить без подачи своих ключевых слов или создания кэшированной коллекции из Object.create(), это быстрый и простой способ кодирования «одного из вышеперечисленных» потоков.
'Progress.bar.status? ('finished' || 'uploading'): «something else» –
Каковы другие возможные значения? –
@SwarajGiri, это не работает, потому что любая непустая строка возвращает true и возвращает '' finished ''. но требование «// code здесь» не реализуется (не может быть). –