Javascript:如何将ux.compact忽略0作为伪值?

Javascript:如何将ux.compact忽略0作为伪值?,javascript,underscore.js,Javascript,Underscore.js,我目前正在提取html表中输入的实时数据,并从每列值中计算出某个值。为此,我需要使用u0.chain和0.pulk,为了清除null和undefined等值,我使用了0.compact,如下所示: var vals = _.chain(values).pluck(operand).compact().value(); 但这也会删除0的值。相反,我希望保留0值。它适用于0.1等所有情况,但不适用于0 但是 有办法做到这一点吗 提前感谢。解决方案取决于操作数提取的内容。如果返回0,则该值将被后续的

我目前正在提取html表中输入的实时数据,并从每列值中计算出某个值。为此,我需要使用u0.chain和0.pulk,为了清除null和undefined等值,我使用了0.compact,如下所示:

var vals = _.chain(values).pluck(operand).compact().value();
但这也会删除0的值。相反,我希望保留0值。它适用于0.1等所有情况,但不适用于0

但是

有办法做到这一点吗


提前感谢。

解决方案取决于操作数提取的内容。如果返回0,则该值将被后续的compact调用删除。您可以尝试以下方法:

_.chain(values).pluck(operand).filter(x => x != null).value()

x!=空部分删除任何空值和/或未定义的值,但保留其余值不变。

解决方案取决于操作数提取的内容。如果返回0,则该值将被后续的compact调用删除。您可以尝试以下方法:

_.chain(values).pluck(operand).filter(x => x != null).value()
x!=空部分删除所有空值和/或未定义的值,但保留其余值不变。

这不是.Pulk的错,而是.compact的错:

:

紧凑的

返回已删除所有falsy值的列表副本。在JavaScript中,false、null、0、undefined和NaN都是false

您可以通过使用.filterv=>来避免这种情况!!v | | v==0而不是.compact。

这不是.pulk的错,而是.compact的错:

:

紧凑的

返回已删除所有falsy值的列表副本。在JavaScript中,false、null、0、undefined和NaN都是false


您可以通过使用.filterv=>来避免这种情况!!v | | v==0而不是.compact。

请向我们展示操作数的定义它的'nothing@David',只是一个在数组中存储特定键的变量。无论如何,我会用示例数据更新问题。问题可能是使用.compact造成的。根据下划线文档,compact返回列表的一个副本,其中删除了所有falsy值。在JavaScript中,false、null、0、undefined和NaN都是false。。这意味着,如果操作数返回的基元值为0,则compact会将其删除。在这种情况下,使用带有自定义函数的过滤器,而不是compactAdded sample input/output@David。很抱歉,它的意思是说compact而不是pulk。请向我们展示操作数的定义它的'nothing@David',只是一个在数组中存储特定键的变量。无论如何,我会用示例数据更新问题。问题可能是使用.compact造成的。根据下划线文档,compact返回列表的一个副本,其中删除了所有falsy值。在JavaScript中,false、null、0、undefined和NaN都是false。。这意味着,如果操作数返回的基元值为0,则compact会将其删除。在这种情况下,使用带有自定义函数的过滤器,而不是compactAdded sample input/output@David。很抱歉,我的意思是说紧凑而不是弹拨。使用!!v表示筛选函数为0返回false。这样,0值将始终被删除,而这不是OP想要的。相反,他希望保留0值。@David是的,谢谢,搞乱了这个条件,应该是| | v===0,已修复。使用!!v表示筛选函数为0返回false。这样,0值将始终被删除,而这不是OP想要的。相反,他希望保留0值。@David是的,谢谢,搞乱了这个条件,应该是| | v===0,已修复。谢谢@David。这起作用了。正如您所说,契约只是忽略了0的值。使用过滤器解决了问题。谢谢@David。这起作用了。正如您所说,契约只是忽略了0的值。使用过滤器解决了这个问题。
_.chain(values).pluck(operand).filter(x => x != null).value()