JavaScript 使用 coffescript 语法 - if 条件:优化 if 语句结构

JavaScript with coffescript syntax- if condition : optimize if statement structure

我有一个函数,我正在测试 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

不确定优化是什么意思,但 shorthand 可能是:

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

编辑:

最初,我使用了三元语法,但 CoffeeScript 不支持这种语法。供参考Ternary operation in CoffeeScript

编辑 2:

再减少一点,@user633183 建议使用 Boolean,但我认为这会产生相同的结果。

您可以删除 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;
};