【问题标题】:Lodash _.filter by more than 1 keyLodash _.filter 超过 1 个键
【发布时间】:2017-10-30 02:25:30
【问题描述】:

我有这样的对象数组:

var chart = [
        {
            "IDACCT": 28,
            "LVLCOA": 2,
            "IDPRNT": 1,
            "NMACCI": "110-000 - ASSETS"
        },
        {
            "IDACCT": 76,
            "LVLCOA": 2,
            "IDPRNT": 1,
            "NMACCI": "170-000 - FIXED ASSETS"
        }
    ];

我想使用两个键返回我的搜索(谓词)基于的对象:

d = _.filter(chart,function(o,e){
                return  o.LVLCOA === 2 && o.IDPRNT === e        
            });

这不起作用。我需要为函数提供一些参数。函数中无法识别问题 e。

【问题讨论】:

    标签: filter lodash


    【解决方案1】:

    当您尝试将数字与未声明的变量e 进行比较时,当然不会。我猜你想将它与另一个数字进行比较?

    【讨论】:

    • 我猜是这样。 e 来自处理程序事件。有什么建议吗?无论如何,但是当我 console.log(e) 时。它打印出数字
    • 我会更新这个问题的论据。但 e 仍然无法识别
    • 当您对该行设置断点并将鼠标悬停在e 上时,或者此时您执行console.log 时会发生什么?
    • 它按顺序记录所有图表对象索引。例如:0,1,2,3,...,438。注意:我在图表中有 439 个数组对象项。
    【解决方案2】:

    在您的特定情况下,您可以设置一个包含两个 filter() 调用的链,并完全取消谓词函数。传递filter() 对象简写就足够了:

    var e = 1;
    var d = _(chart)
      .filter({ LVLCOA: 2 })
      .filter({ IDPRNT: e })
      .value();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-22
      • 2018-09-02
      • 2013-08-08
      • 2021-11-29
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      相关资源
      最近更新 更多