javascript中数组⽐较⼤⼩⽅法
javascript中数组取最⼤值和最⼩值
javascript说明
1、排序法
我们给数组进⾏排序,可以按照从⼩到⼤的顺序来排,排序之后的数组中第⼀个和最后⼀个就是我们想要获取的最⼩值和最⼤值。排序我们会⽤到数组的 sort ⽅法。
var arr = [12,56,25,5,82,51,22];
arr.sort(function (a, b) {
return a-b;
}); // [5,12,22,25,51,56]
var min = arr[0];  // 5
var max = arr[arr.length - 1];  // 56
2.假设法
假设当前数组中的第⼀个值是最⼤值,然后拿这个最⼤值和后⾯的项逐⼀⽐较,如果后⾯的某⼀个值⽐假设的值还⼤,说明假设错了,我们把假设的值进⾏替换。最后得到的结果就是我们想要的。
// 获取最⼤值:
var arr = [22,13,6,55,30];
var max = arr[0];
for(var i = 1; i < arr.length; i++) {
var cur = arr[i];
cur > max ? max = cur : null
}
console.log(max); // 55
// 获取最⼩值:
var arr = [22,13,6,55,30];
var min = arr[0];
for(var i = 1; i < arr.length; i++) {
var cur = arr[i];
cur < min ? min = cur : null
}
console.log(min)  // 6
3. 使⽤ Math 中的 max/min ⽅法
可以使⽤apply来实现。apply传⼊的是⼀个数组。
var arr = [22,13,6,55,30];
var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);
console.log(max, min) // 55,6
4、使⽤ES6的扩展运算符
//ES5 取数组最⼤值
console.log(Math.max.apply(this, [654, 233, 727]));
//ES6 扩展运算符
console.log(Math.max(...[654, 233, 727]))
//相当于
console.log(Math.max(654, 233, 727))
排序对象数组
// ⽐较年份
var cars = [
{type:"Volvo", year:2016},
{type:"Saab", year:2001},
{type:"BMW", year:2010}];
cars.sort(function(a, b){ar - b.year});
//⽐较字符串
cars.sort(function(a, b){
var x = LowerCase();
var y = LowerCase();
if (x < y) {return -1;}
if (x > y) {return 1;}
return 0;
});
以随机顺序排序数组
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return 0.5 - Math.random()});

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。