[英]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.min
和Math.min
与apply
一起apply
:
var min = Math.min.apply(null, arr1);
var max = Math.max.apply(null, arr1);
minumum
拼写错误。 应该是minimum
不要在未使用var
关键字声明变量的情况下使用变量。 否则它们将成为全局属性。
此外,你可以有你的最低入住也在同一回路为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]; }
现在我们知道了,我们可以这样做,让我们尝试使用三元运算符来进一步缩短它
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.