因为Math.max() 以及 Math.min() 方法中传入的应该是一组数,数组是接收不了的,所以对从数组中找最大值的方法做一些总结。
Math.max.apply(null, arr); Math.min.apply(null, arr);
语法:apply([thisObj,[argArray]]) 定义:应用某一对象的一个方法,用另一个对象替换当前对象。 说明: 如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。
Math.max(…arr); Math.min(…arr);
这是 es6 中的扩展运算符,可以将一个数组,变为参数序列。
自定义函数,利用迭代
function getMax(arrays){ arrays.push(Math.max(arrays.pop(),arrays.pop())); if(arrays.length>1){ getMax(arrays); } return arrays[0];}function getMin(arrays){ arrays.push(Math.min(arrays.pop(),arrays.pop())); if(arrays.length>1){ getMin(arrays); } return arrays[0];}新闻热点
疑难解答