这是我尝试过的:
Math.min([1,2,3])
但只获得NaN
...
使用 apply
:
Math.min.apply(null,[1,2,3]); //=> 1
Function.apply(thisArg[, argArray])
方法允许你调用一个函数并指定关键字 this 在函数内的上下文中所引用的对象。thisArg 参数应该是一个对象。在被调用的函数上下文中,this 将会引用 thisArg。apply 方法的第二个参数是一个数组,该数组的元素将作为被调用的函数的参数传递。argArray 参数既可以是数组字面量,也可以是函数的废弃 arguments 属性。
在这种情况下,第一个参数不重要(因此为 null),而第二个参数很重要,因为该数组作为参数传递给了 Math.min
。这就是此处使用的 '技巧'。
[编辑于2020年11月] 这个答案相当老了。现在(使用 Es20xx)您可以使用扩展语法将一个数组展开为 Math.min
的参数。
Math.min(...[1,2,3]);
console.log(Math.min(...[1,2,3]))
您需要遍历数组。据我所知,JS中没有array_min
函数。
var i, min = arr[0];
for (i=1; i<arr.length; i++)
min = Math.min(min, arr[i]);
使用这个
Array.min = function( array ){
return Math.min.apply( Math, array );
};
NaN
),只需将数字作为函数的参数传递。像这样:Math.min(1, 2, 3)
Math.min()
,它接受一个数组并在调用Math.min()
之前将其拆分为数组元素。(甚至检查输入以确保它们都是数字。) - David