JS:在特定范围内找到数组中的最低/最高数字

时间:2015-03-19 10:45:44

标签: javascript arrays math apply min

我有一个带有几个nums的数组:

var arr = ["10","14","23","2","21","17","72","16","73","52"];

我知道我可以使用Math.min.apply(Math, arr)从数组中获取最小数字或使用Math.max.apply(Math,arr)获取最大数字,但现在我只需要最后3个元素中的最小或最大数字阵列。

我有什么建议吗?

1 个答案:

答案 0 :(得分:1)

使用Array.prototype.slice(),您可以提取数组中的一系列值。这样您就只能对指定范围内的值执行min()max()功能。

下面的minmax()函数会返回一个minmax值的对象。



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;
}