Javascript:如何使_.compact忽略0作为一个伪造的值?

我目前正在提取在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

有没有办法做到这一点?


临摹微笑
浏览 177回答 2
2回答

慕勒3428872

解决方案取决于operand提取物。如果返回0,则随后的调用将删除该值compact。您可以尝试以下方法:_.chain(values).pluck(operand).filter(x => x != null).value()该x != null零件将删除任何null和/或undefined值,但其余部分保持不变。

梵蒂冈之花

不是因为.pluck错,而是因为.compact:文件:袖珍的返回删除了所有虚假值的列表的副本。在JavaScript中,false,null,0,“”,undefined和NaN都是虚假的。您可以使用.filter(v => !!v || v === 0)代替来避免这种情况.compact()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript