我需要从数字列表中找到最小数字,不包括零。
是否有一些内部函数可以做到这一点?或者我是否必须在使用 Math.min
之前从列表中删除零?
示例:
输入:213
, 0
, 32
, 92
, 0
, 2992
, 39
结果:32
[更新] 如果可能,请提供将输入作为参数的函数代码,例如 nonZeroMin(213, 0, 32, 92, 0, 2992, 39)
最佳答案
代码/解决方案:
var arr = [3, 0, 7, 12, 0, 5, 22];
var minValue = Math.min.apply(null, arr.filter(Boolean));
工作原理:
arr.filter
创建一个新数组,其中包含通过提供的函数实现的测试的所有元素。所以在上面的代码中,数组的每个值都将通过 Boolean(value)
Boolean(3) // true
Boolean(0) // false
Boolean(7) // true
// ...
因此,我们将得到一个新的过滤数组,其中包含除零以外的所有元素。
然后 Math.min.apply(null, ...)
在这样的数组中找到最小值。
null
在这种情况下是一个上下文。它可以是 null
、this
、Math
- 结果相同。
关于javascript - 不包括零的最小数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10557176/