javascript - 不包括零的最小数量

标签 javascript

我需要从数字列表中找到最小数字,不包括零。

是否有一些内部函数可以做到这一点?或者我是否必须在使用 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 在这种情况下是一个上下文。它可以是 nullthisMath - 结果相同。

关于javascript - 不包括零的最小数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10557176/

相关文章:

javascript - 编写多维数组 jQuery

javascript - 可以在对象中单击时创建事件 - Vue JS

javascript - 鼠标向上更改按钮

javascript - 按属性对 JavaScript 对象数组进行排序时数字有什么问题

javascript - jQuery getScript 不会加载脚本

javascript - Angular JS : URL parameter appears before the `#!/` and doesn't appear in $location. 搜索()

javascript - 单击事件不适用于使用 JQuery 导入文件

JavaScript 将 future 日期设置为今天

javascript - jQuery iframe load() 事件?

javascript - D3 放大 jquery 按钮单击