繁体   English   中英

JavaScript中数组的最小值和最大值

[英]Minimum and Maximum of an array in JavaScript

我需要对数字数组进行排序,以便它返回其最小值和最大值。 到目前为止,我编写的代码似乎根本没有执行任何操作。

function sort(array) {
    arrayNew = [];
    maximum = array[0];
    minimum = array[0];

    for (i = 0; i < array.length; i++) {
        if (maximum < array[i]) {
            maximum = array[i];
        }
    }
    arrayNew.push(maximum);

    for (i = 0; i < array.length; i++) {
        if (minimum > array[i]) {
            minimum = array[i];
        }
    }
    arrayNew.unshift(minumum);
    return arrayNew;
}


var arr1 = [3, 8, 7, 6, 5, -4, 3, 2, 1];
alert(sort(arr1));

如果您不知道有什么更简单的方法来从数组中获取最小值和最大值-将Math.minMath.minapply一起apply

var min = Math.min.apply(null, arr1);
var max = Math.max.apply(null, arr1);

演示

  1. minumum拼写错误。 应该是minimum

  2. 不要在未使用var关键字声明变量的情况下使用变量。 否则它们将成为全局属性。

  3. 此外,你可以有你的最低入住也在同一回路为maximum 因此,您的代码可以像这样缩短

     function sort(array) { var maximum = array[0], minimum = array[0], i; for (i = 0; i < array.length; i++) { if (maximum < array[i]) { maximum = array[i]; } if (minimum > array[i]) { minimum = array[i]; } } return [minimum, maximum]; } 
  4. 现在我们知道了,我们可以这样做,让我们尝试使用三元运算符来进一步缩短它

     function sort(array) { var maximum = array[0], minimum = array[0], i; for (i = 0; i < array.length; i++) { maximum = maximum < array[i] ? array[i] : maximum; minimum = minimum > array[i] ? array[i] : minimum; } return [minimum, maximum]; } 
var arr = [ 3, 8, 7, 6, 5, -4, 31, 2, 21, 20, 1 ].sort(function(a, b) { return a - b }),  // [-4, 1, 2, 3, 5, 6, 7, 8, 20, 21, 31]
    min = arr[0],  // min
    max = arr[arr.length-1];  //max

arrayNew.unshift(minumum); 错误的变量minimum

正确的一个: arrayNew.unshift(minimum);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM