【问题标题】:Linq.js Sum inside WhereLinq.js Sum 里面的 Where
【发布时间】:2017-05-07 04:42:57
【问题描述】:

有什么方法可以在 Linq.JS 中使用 SUM 进行过滤?

我的尝试:

var query = Enumerable
            .From(self.data())
            .Where("$$.Sum($.percent) > 100")
            .ToArray();

错误:

linq.js: 未捕获的 TypeError: $$.Sum 不是函数

【问题讨论】:

  • 您可能必须先计算总和,然后进行过滤。
  • @Haroldo_OK 谢谢,我做到了。

标签: javascript linq.js


【解决方案1】:

这是我使用并解决的代码:

self.validatePercentualSumOfItens = () => {
    const sumOfGroupedItens = Enumerable
          .From(self.dadosCobranca().configuracoes())
          .Where("$.idAgrupadorRateio != null && $.idAgrupadorRateio != -1")
          .GroupBy("{ idAgrupadorRegra: $.idAgrupadorRegra, 
                      idAgrupadorRateio: $.idAgrupadorRateio 
                    }", 
                   "parseFloat($.percentualRateio)",
                   "{ idAgrupadorRegra: $.idAgrupadorRegra, 
                      idAgrupadorRateio: $.idAgrupadorRateio, 
                      total: parseFloat($$.Sum()).toFixed(2) 
                    }",
                    "$.idAgrupadorRegra + '-' + $.idAgrupadorRateio")
           .ToArray();

    const itensThatNotMatchAHundred = Enumerable
                                .From(sumOfGroupedItens)
                                .Where("$.total < 100 || $.total > 100")
                                .ToArray();

    return itensThatNotMatchAHundred.length;
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-26
    • 1970-01-01
    • 2013-01-11
    • 2014-09-21
    • 2019-03-04
    • 1970-01-01
    • 2013-03-16
    • 2020-06-18
    相关资源
    最近更新 更多