繁体   English   中英

如何在javascript中获取数组中的最小元素?

[英]How to get the min elements inside an array in javascript?

这是我尝试过的:

Math.min([1,2,3])

但只能得到NaN ...

使用apply

Math.min.apply(null,[1,2,3]); //=> 1

来自开发大师

Function.apply(thisArg[, argArray]) apply 方法允许您调用函数并指定 this 在该函数的上下文中将引用的关键字。 thisArg 参数应该是一个对象。 在被调用函数的上下文中,this 将引用 thisArg。 apply 方法的第二个参数是一个数组。 该数组的元素将作为参数传递给被调用的函数。 argArray 参数可以是数组文字或函数的已弃用参数属性。

在这种情况下,第一个参数不重要(因此:null),第二个是,因为数组作为参数传递给Math.min 这就是这里使用的“技巧”。

[编辑十一月。 2020 ] 这个答案相当陈旧。 如今(使用 Es20xx)您可以使用扩展语法将数组扩展为Math.min参数。

Math.min(...[1,2,3]);

使用 JS 扩展运算符避免额外编码:

console.log(Math.min(...[1,2,3]))

您必须遍历数组。 AFAIK JS 中没有array_min

var i, min = arr[0];
for (i=1; i<arr.length; i++)
    min = Math.min(min, arr[i]);
Math.min(1, 2, 3)
1

由于[1,2,3]无法转换为数字,因此它返回NaN

更多: Mozilla 参考

用这个

Array.min = function( array ){
        return Math.min.apply( Math, array );
    }; 

检查此链接 - http://ejohn.org/blog/fast-javascript-maxmin/

不要将数组传递给它(在这种情况下,它不是数字或NaN ),只需将数字作为参数传递给函数即可。 像这样:

Math.min(1, 2, 3)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM