【问题标题】:Return Minimum value excluding 0 in form calculation返回表单计算中不包括 0 的最小值
【发布时间】:2017-10-03 18:49:21
【问题描述】:

我正在尝试返回一系列数字输入字段中的最小值。当字段为空白时,它们被读取为 0。

Math.min 将返回 0,除非所有字段都填充了值。

请参阅下面的代码,我将不胜感激。

if ($H8M1$ > 0)
{
return(
Math.min(
$H8M1$, 
$H8M2$,
$H8M3$,
$H8M4$,
$H8M5$,
$H8M6$,
$H8M7$,
$H8M8$,
$H8M9$,
$H8M10$,
$H8M11$,
$H8M12$,
$H8M13$,
$H8M14$,
$H8M15$,
$H8M16$,
$H8M17$,
$H8M18$,
$H8M19$,
$H8M20$));

}

【问题讨论】:

  • 数字 0 对您的输入字段有效吗?
  • Math.min.apply(Math, [$H8M1$, $H8M2$, $H8M3$, $H8M4$, $H8M5$, $H8M6$, $H8M7$, $H8M8$, $H8M9$, $H8M10$, $H8M11$, $H8M12$, $H8M13$, $H8M14$, $H8M15$, $H8M16$, $H8M17$, $H8M18$, $H8M19$, $H8M20$].map(Number).filter(Boolean))
  • @Thomas 我将发布完全相同的解决方案,但这也会从输入中过滤掉数字 0
  • @abhishekkannojia 这不是他要求的吗?然后是不同的过滤器:.filter(v => !isNaN(v)).filter(v => +v === +v)

标签: javascript math minimum calculation


【解决方案1】:

javascript 中的空字段是 falsy 值,在这种情况下,解析器会强制强制转换为 0 的数字(仍然是 falsy 值)。

您可以从计算中删除所有空字段或循环遍历系列并将空元素分配给系列的最小值,但这样您已经获得了最小值,因此 Math.min 不再有用。

【讨论】:

    【解决方案2】:

    对于您传递给 Math.min() 的每个值,如果该值为空白,则为该值分配 0。

    如果($H8M1$ == "") $H8M1$ = 0;

    【讨论】:

    • 他想忽略 0 值,而不是添加更多。
    猜你喜欢
    • 2021-03-16
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2021-07-01
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多