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
(在这种情况下,我的答案很好):