学习js最值与排序慢才后生2022-11-032022-11-0312345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061var 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; });