web 数组

冒泡排序

  • 冒泡排序思路

    • 相邻的两个元素进行比较 如果后面的元素比前面的元素小 就交换位置

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") - new Date("2020-10-1")  );// 隐式转换
​
        arr1.sort(function(a,b){
            // return  Date.parse( a.date ) - Date.parse( b.date )
            return new Date(a.date) - new Date(b.date);
        })
        console.log(arr1);
  • 中文排序

// 4.根据中文排序  a-z
        // 李三 l    杨思 y   郭郭 g  迪丽热巴 d   迪丽热巴 郭郭 李三 杨思
        arr1.sort(function(a,b){
            // localeCompare 
            // return a.name.localeCompare(b.name);//将中文转换拼音 根据拼音首字母按照a-z排序
            return b.name.localeCompare(a.name);//将中文转换拼音  根据拼音首字符按照z-a排序
        })
        console.log(arr1)
  • 随机排序

// 5.随机排序
        var arr2 = [1,2,3,4,5,6];
        arr2.sort(function(a,b){
            return Math.random() - 0.5;//通过随机产生0-1的数  然后判断是否大于0.5
        })
        console.log(arr2);
​

1.2数组的迭代方法

==IE低版本不支持迭代方法==

  • 以前学的数组方法

    • 循环 for while do-while

    • 遍历 for-in

    • 迭代 every some forEach map filter

  • every

    • 语法:arr.every(function(数组元素,下标,当前数组){ })

    • 作用:对数组元素进行判断 所有的判断都为true的之后 结果返回true

     // 1.every
            var arr = [80,60,100,45,99,10]; // true true true false true false
            // 判断所有成绩是否都大于60分
            var res =  arr.every(function(item,index){ // item数组元素(80 60 100 45 99 10)  index下标(0,1,2,3,4,5)
                console.log(item,index)
                return item >=60
            })
            console.log(res);
  • some

    • 语法:arr.some(function(数组元素,下标,当前数组){})

    • 作用:对数组元素进行判断 只要有一个判断条件为true 结果就为true

    // 2.some  只要有一个判断条件为true  结果就为true
            // 考试成绩中有没有考到100分的
            var arr1 =  [80,60,100,45,99,10];// false false true false false false
            var res =  arr1.some(function(item,index){ // item数组元素  index下标
                return item==100
            })
  • filter

    • 语法:arr.filter(function(数组元素,下标,当前数组){})

    • 作用:对数组元素进行判断 将满足条件的元素组成一个新的数组返回

     // 3.filter 对数组元素进行判断  将满足条件的元素组成一个新的数组返回
            // 将成绩大于60的全部筛选出来
            var arr2 = [80,60,100,45,99,10];
            var res =  arr2.filter(function(item,index){
                return item>=60
            })
            console.log(res);
  • forEach

    • 语法:arr.forEach(function(数组元素,下标,当前数组){})

    • 作用:遍历数组 没有返回值

     // 4.forEach 遍历数组  没有返回值
            // 将所有的成绩-5
            var arr3 = [80,60,100,45,99,10];
            var res =  arr3.forEach(function(item,index){//item数组元素  index下标
                console.log(item,index);
                arr3[index] = item-5
            })
            console.log(arr3)
  • map

    • 语法:arr.map(function(数组元素,下标,当前数组){})

    • 作用:遍历数组 有返回值

           // 5.map  遍历数组  有返回值
            var arr4 = [80,60,100,45,99,10];
            var res =  arr4.map(function(item,index){
                // + 5
                return item+5
            })
            console.log(res,arr4);

2.正则对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值