代码之家  ›  专栏  ›  技术社区  ›  Harshith Rai

Javascript:如何将3;.compact忽略0作为错误值?

  •  0
  • Harshith Rai  · 技术社区  · 7 年前

    我目前正在提取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 回复  |  直到 7 年前
        1
  •  3
  •   Davi    7 年前

    解决方案取决于什么 operand 摘录。如果它回来了 0 ,该值将被后续调用删除 compact . 你可以试试这个:

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

    x != null 零件移除任何 null undefined 价值观,但其余不变。

        2
  •  3
  •   Community Mohan Dere    5 年前

    .pluck 是他的错,但是 .compact 的:

    Docs

    契约

    列表 删除所有错误值。在JavaScript中, false,null,0,“”,未定义 都是假的。

    .filter(v => !!v || v === 0) 而不是 .compact() .

    推荐文章