我有一个带有几个nums的数组:
var arr = ["10","14","23","2","21","17","72","16","73","52"];
我知道我可以使用Math.min.apply(Math, arr)
从数组中获取最小数字或使用Math.max.apply(Math,arr)
获取最大数字,但现在我只需要最后3个元素中的最小或最大数字阵列。
我有什么建议吗?
答案 0 :(得分:1)
使用Array.prototype.slice()
,您可以提取数组中的一系列值。这样您就只能对指定范围内的值执行min()
和max()
功能。
下面的minmax()
函数会返回一个min
和max
值的对象。
function minmax(arr, begin, end) {
arr = [].slice.apply(arr, [].slice.call(arguments, 1));
return {
'min' : Math.min.apply(Math, arr),
'max' : Math.max.apply(Math, arr)
}
}
var values = ["10","14","23","2","21","17","72","16","73","52"];
var result = minmax(values, -3);
document.body.innerHTML = JSON.stringify(result, undefined, ' ');

body {
font-family: monospace;
white-space: pre;
}