冒泡排序
-
冒泡排序思路
-
相邻的两个元素进行比较 如果后面的元素比前面的元素小 就交换位置
-
for(var i = 0;i<arr.length-1;i++){
for(var j = 0;j<arr.length-1-i;j++)}{
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
选择排序
-
选择排序思路
-
当前这个元素 和后面所有的元素依次比较 如果后面的值比钱前面的值小 就交换位置
-
<script>
var arr = [6, 3, 9, 2, 7, 1,10,0,12];
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
console.log(arr);
</script>
sort排序
==注意:如果是相同排序 就根据原有数组的结构顺序显示==
-
基础使用
// 1.sort() 是数组自带的方法 数组.sort()
// 基础使用 不带参数 默认排序是根据ASCII码进行排序的 "0"---48
var arr = [6, 3, 9, 2, 7, 1,10,0,12];
console.log(arr);
// arr.sort();
// console.log(arr);
// 带参数 按照number类型比较 sort(function(a,b){ }) // a和b是相邻的两个数据
arr.sort(function(a,b){
console.log(a,b);// a是后一个数 b是一个数
// return a - b //从小到大
return b - a //从大到和
})
console.log(arr);
-
对象排序
// 2.对象排序 根据对象的age排序 l y g d
var arr1 = [
{
"name":"李三","age":15,"date":"2006-4-1"
},
{
"name":"杨思","age":12,"date":"2009-4-1"
},
{
"name":"郭郭","age":17,"date":"2010-4-1"
},
{
"name":"迪丽热巴","age":19,"date":"2003-4-1"
}
]
arr1.sort(function(a,b){
// 获取对象中的属性值 对象名.属性名
return a.age - b.age //根据age 从小到大
})
-
日期排序
// 3.日期排序
console.log( Date.parse("2022-10-1") );//1664553600000 创建字符串未来时间并且转换时间戳(毫秒单位 1970年1月1日到2022年10月1日的毫秒单位)
console.log( new Date("2022-10-1")