Javascript 适当的洛达斯法

Javascript 适当的洛达斯法,javascript,lodash,Javascript,Lodash,我有一个名为slip的对象,这个对象包含一个属性active,属性属性是'1',当未选择slip对象时,属性active具有属性'0' 我有一个函数,只有当属性处于活动状态时才需要应用该函数。我想知道在这种情况下,哪种是最好的Lodash方法 var applyStraightWin = function(slip, amount) { var moneyLine = _.result(_.find(slip.lines, {isSelected: '1'}), 'moneyLine

我有一个名为
slip
的对象,这个对象包含一个属性
active
,属性属性是
'1'
,当未选择
slip
对象时,属性
active
具有属性
'0'

我有一个函数,只有当属性
处于活动状态时才需要应用该函数。我想知道在这种情况下,哪种是最好的Lodash方法

var applyStraightWin = function(slip, amount) {
      var moneyLine = _.result(_.find(slip.lines, {isSelected: '1'}), 'moneyLine');
      _.filter(slip.active, function(pickActive) {
        if (pickActive == '1') {
          _.assign(slip, {
            win: amount,
            risk: RiskWinCalculations.calculateStraightBet(amount, parseFloat(moneyLine, 10), false),
            riskSelected: false,
            winSelected: true
          });
        }
      });
    }
\uuu.filter
方法就是我想要的,就是取出
slip.active!=0
。但是,从背景来看,有没有比
.filter
方法更好的方法

[…]是否有比
\uu.filter
方法更好的方法可供使用

绝对:不使用它要好得多

var moneyLine = _.result(_.find(slip.lines, {isSelected: '1'}), 'moneyLine');
if (slip.active == '1') {
   _.assign(slip, {
     win: amount,
     risk: RiskWinCalculations.calculateStraightBet(amount, parseFloat(moneyLine, 10), false),
     riskSelected: false,
     winSelected: true
   });
}


\uuu.filter
的目的是选择集合的子集。如果您想测试某个属性是否具有特定值,则不应使用此函数。

不,这不是正确的答案,大约有5个项目包含此
条带。active
,如果需要,在这5个项目中我可以停用一个。如果我照你说的做,那么这个函数就不起作用了。这就是为什么我需要迭代那些
slip.active==“0”
,明白了吗?我需要迭代,因为它是一个集合!但是您正在迭代slip.active
。你是说
slip.active
是由五项组成的集合吗?您说的
slip
是一个属性为
active
的对象,该属性为
1
0
。藏品到底在哪里?我试过你说的,兄弟。却无法让它发挥作用。我需要使用过滤器或类似的东西。我只是想问,哪种方法最好不包括包含slip的方法。active==
0
,对不起,如果我把您弄糊涂了,我想您必须提供一个更好、更完整的示例。如果
slip
像你说的那样是一个单独的对象,而
slip.active
是一个数字或字符串,那么在
slip
slip.active
上调用
.filter
是没有意义的。根据你的描述,这就是我所期望的
slip
(在这种情况下,我的答案很好):