代码之家  ›  专栏  ›  技术社区  ›  STEEL

在不带Math.min的数组中查找最小值

  •  7
  • STEEL  · 技术社区  · 12 年前

    如何在不使用的情况下找到数组中的最低数字 Math.min.apply ?

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

    const smallest = Math.min(...[5,1,9,5,7]);
    
    console.log({smallest});
    
    //old way
    const smallestES5 = Math.min.apply(null, [5,1,9,5,7]);
    
    console.log({smallestES5});
    8 回复  |  直到 4 年前
        1
  •  11
  •   MrCode    12 年前

    如果必须使用 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);
    
        2
  •  11
  •   STEEL    6 年前

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

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

    By default, the sort method sorts elements alphabetically. To sort numerically just add a new method which handles numeric sorts

    var arr = [5, 1, 9, 5, 7];
    
    var smallest = arr.sort((a, b) => a - b);
    
    alert(smallest[0]);
        3
  •  2
  •   tenub    12 年前

    只需对数组进行排序,然后取第一个值,很简单。

    如果必须使用for循环:

    var arr = [5,1,9,5,7];
    for (var i=0; i<1; i++) {
        arr.sort();
    }
    return arr[0];
    
        4
  •  1
  •   Leo    8 年前

    这里有一个使用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。

        5
  •  0
  •   saran    6 年前

    不使用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);
    
        6
  •  0
  •   Nawaz Haider    4 年前

    你可以试试这个

    const min = (arr) => {
     return arr.sort((a, b) => a - b)[0];
     };
    

    这个min()函数应该完成任务

        7
  •  0
  •   Ravi Ashara    4 年前

    var arr = [5, 1, 9, 5, 7,-1,0,5,11,100,-0.5];
    
    var smallest = arr.sort();
    
    console.log(smallest[0]);
        8
  •  0
  •   Md Yunus Ali    4 年前

    制作一个函数,以便您可以根据自己的需要重用它。这里我刚刚展示了一个最小数字查找器的例子。

    function smallestNumber(number){
        let min = number[0];
        for(let i = 0; i < number.length; i++){
            let element = number[i];
            if( element < min ){
                min = element
            }
        }
        return min;
    }
    
    
    let totalNum = [25,50,75,56,11,50,7,9,12];
    let result = smallestNumber(totalNum);
    console.log('The small number is : ',result);