var temp = 0;
var arr = [98, 98, 99, 96, 102];
// 方式一:Array.sort()升序
arr.sort((a, b) => {
return a - b;//降序 是 b-a
});
// 方式二:一般的 两层 for循环
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 方式三:冒泡排序,与 方式二 思路不同,不过也是 两层 for循环
for (var i = 0; i < arr.length - 1; i++) {
for (var j = i + 1; j < arr.length - 1 + i; j++) {
if (arr[i] > arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
//题外:若不需要升、降序,只求一个最值,1层冒泡循环即可
for (var i = 0; i < arr.length - 1; i++) {
if (arr[i] > arr[i + 1]) {//最大值 在数组的 最右边
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
//以下2种方式 只能求出 最值。没有升、降序!
// 方式四:单层 for循环
//(很重要!由于两个自定义最值一开始就要参与比较。两个 最值必须 相等,且使用数组中的任一个元素进行赋值!!!)
var min = max = arr[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
} else if (arr[i] < min) {
min = arr[i];
}
}
// 方式五:Array.reduce()
var min = max = 0;
max = arr.reduce((a, b) => {
return a > b ? a : b;
});
min = arr.reduce((a, b) => {
return a < b ? a : b;
});
js中的 最值 5法,排序3法
最新推荐文章于 2024-06-21 00:00:00 发布