在没有Math.min的Array中查找最小值

时间:2013-10-17 16:55:09

标签: javascript arrays

如何在不使用Math.min.apply的情况下找到数组中的最小数字?我必须使用for-loop

var arr = [5,1,9,5,7];

5 个答案:

答案 0 :(得分:7)

如果必须使用for循环:

var arr = [5,1,9,5,7];
var smallest = arr[0];

for(var i=1; i<arr.length; i++){
    if(arr[i] < smallest){
        smallest = arr[i];   
    }
}

console.log(smallest);

答案 1 :(得分:4)

现在看看我自己的问题......我看起来很傻。

以下是找到数组中最小数字的完美解决方案:

var arr = [5, 1, 9, 5, 7];

var smallest = arr.sort((a, b) => a > b);

alert(smallest[0]);

答案 2 :(得分:2)

只需对数组进行排序并获取第一个值,即可。

如果你必须使用for循环:

var arr = [5,1,9,5,7];
for (var i=0; i<1; i++) {
    arr.sort();
}
return arr[0];

答案 3 :(得分:1)

这是一个使用for循环的简单解决方案。

var arr = [5,1,9,5,7];
var smallest = arr[0];
for (var i=0; i<arr.length; i++){
    if (arr[i]<smallest){
        smallest = arr[i];
    }
}
return smallest;

返回1.

答案 4 :(得分:0)

不使用for循环(ES6)的替代解决方案。 JavaScript reduce方法是一个不错的选择。

var arr = [5,1,9,5,7];
var smallest = arr.reduce((prev,next) => prev>next ? next : prev);
var largest = arr.reduce((prev,next) => prev<next ? next : prev);