我目前正在提取在html表中输入的实时数据,并从每个列值中计算出某个值。为此,我需要使用_.chain()和_.pluck,并刮出像null和这样的值undefined,我这样使用_.compact():var vals = _.chain(values).pluck(operand).compact().value();但这也会删除值0。相反,我想保留这些0值。它适用于诸如之类的所有东西0.1,但不适用于0。For this array: 0: {A: 4}1: {T: 6}2: {A: 1}3: {T: 6}when operand='A', vals=4,1 ==> size of vals[] = 2但For this array: 0: {A: 4}1: {T: 6}2: {A: 0}3: {T: 6}when operand='A', vals=4 ==> size of vals[] = 1 //missing value 0有没有办法做到这一点?
2 回答
慕勒3428872
TA贡献1848条经验 获得超6个赞
解决方案取决于operand
提取物。如果返回0
,则随后的调用将删除该值compact
。您可以尝试以下方法:
_.chain(values).pluck(operand).filter(x => x != null).value()
该x != null
零件将删除任何null
和/或undefined
值,但其余部分保持不变。
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
不是因为.pluck
错,而是因为.compact
:
文件:
袖珍的
返回删除了所有虚假值的列表的副本。在JavaScript中,false,null,0,“”,undefined和NaN都是虚假的。
您可以使用.filter(v => !!v || v === 0)
代替来避免这种情况.compact()
。
添加回答
举报
0/150
提交
取消