一、数组的拓展方法sort()
1.语法形式 array.sort(function(a,b){
//从小到大排序
return a - b;
//从大到小排序
//return b - a;
})
2.返回值 原数组
var arr = [11, 85, 94, 89, 45, 13, 54, 75, 18, 64, 15, 88, 44];
console.log("原数组:", arr);
arr.sort(function (a, b) {
//从小到大排序
return a - b;
//从大到小排序
//return b - a;
});
console.log("排序后的数组:", arr);
也可以对数组中对象的某个属性值进行排序
var arr = [
{ name: "张三", age: 20 },
{ name: "李四", age: 28 },
{ name: "王五", age: 15 },
];
arr.sort((a, b) => {
return a.age - b.age;
});
console.log("排序后的数组:", arr);
二、冒泡排序法
原理:循环遍历数组 对相邻的两个元素进行比较 将数值大的数向后排序
理解过程中 可以通过打断点的方式来帮助理解
var arr = [72, 85, 94, 89, 45, 13, 54];
console.log("原数组", arr);
for (var j = 0; j < arr.length - 1; j++) {
for (var i = 0; i < arr.length - 1 - j; i++) {
//arr.length - 1 - j 每冒泡一次 需要比较的数值就少一位
if (arr[i] > arr[i + 1]) {
var temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
console.log(`第${j}次冒泡`, arr);
}
console.log("排序后的数组", arr);
三、选择排序法
原理
第一次 假设第一个元素 是最小值 ,和之后的所有元素比较
如果有其他元素比它小 则交换两个元素的位置
第二次 假设第二个元素 是最小值 ,和之后的所有元素比较
如果有其他元素比它小 则交换两个元素的位置
···
依次 完成排序
var arr = [68, 85, 94, 89, 45, 13, 54, 75];
console.log("原数组", arr);
for (var j = 0; j < arr.length - 1; j++) {
for (var i = j + 1; i < arr.length; i++) {
// 将 arr[j] 之后的所有元素 循环遍历
var item = arr[i];
//item为 arr[j]之后的每一个元素
if (item < arr[j]) {
// 将arr[j]之后的每一个元素与arr[j]比较 进行排序
var temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
console.log(arr);
}
console.log("排序后的数组", arr);
数组的排序方法还有很多种 这里就不一一列举了…