JavaScript с синтаксисом coffescript - условие if: оптимизировать структуру оператора if - PullRequest
0 голосов
/ 04 октября 2018

У меня есть функция, и я тестирую 4 переменные, хочу оптимизировать структуру моего теста if, может кто-нибудь помочь?:

$scope.filterActivated = ->
    if $scope.postParams.options.scopes.report.from || $scope.postParams.options.scopes.report.to || $scope.postParams.options.template_id || $scope.displayOptions.query.length > 0
      return true
    else
      return false

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

вы можете удалить true/false и немного оптимизировать его следующим образом:

$scope.filterActivated = ->
  options = $scope.postParams.options
  options.scopes.report.from or options.scopes.report.to or options.template_id or $scope.displayOptions.query.length > 0

Редактировать: JS для вас:

$scope.filterActivated = () => {
  let options = $scope.postParams.options;
  return options.scopes.report.from || options.scopes.report.to || options.template_id || $scope.displayOptions.query.length > 0;
};
0 голосов
/ 04 октября 2018

Не уверен, что вы подразумеваете под оптимизацией, но сокращение может быть таким:

$scope.filterActivated = ->
    $scope.postParams.options.scopes.report.from
    || $scope.postParams.options.scopes.report.to
    || $scope.postParams.options.template_id
    || $scope.displayOptions.query.length;

Редактировать:

Изначально я использовал троичный синтаксис, но это не поддерживается CoffeeScript,Для справки Тернарная операция в CoffeeScript

Редактировать 2:

Уменьшил немного больше, @ user633183 предложил использовать Boolean, но я думаю, что это дает тот же результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...