zoukankan      html  css  js  c++  java
  • JS基础-数组的常用方法-冒泡排序

    1.数组
      1.关联数组
        以数字作为元素下标的数组,就是索引数组。
        以字符串作为元素下标的数组,就是关联数组。
      2.js的关联数组
        ex:在php中
           $array=["name"=>"Tom"]
        var unames=[];
            unames["西游记"]="孙悟空";
     unames["红楼梦"]="林黛玉";
     unames["三国"]=["刘备","关羽","张飞"];
        注意:
          1.关联数组中,字符串下标的内容是不记录到length中的。
          2.只能通过 字符串 做下标取值。
      3.for...in
        遍历出任意数组中的字符串下标以及索引下标。
        语法:
            for(var 变量 in 数组){
               //变量:字符串下标或索引下标
            }

        练习:
           定义一个数组,数组中包含索引和字符串下标的元素。用for...in遍历出数组中的元素并打印在控制台。
    2.冒泡排序
      1.什么是冒泡排序
        排序算法之一,将一组数据进行排序,小的数字往前排,大的数字往后排。
        两两比较,小的靠前,大的往后。
     ex:
       var arr=[23,9,78,6,45];
       特点:
        1.比较轮数:
          5个数字  比较了4轮
          6个数字  比较5轮
          ...
          n个数字  比较n-1轮
          for(var i=1;i<arr.length;i++){
            
          }
        2.比较的次数
          随着比较的轮数的增加,比较的次数减少
          for(var j=0;j<arr.length-i;j++){
              //数字换位:异或
       if(arr[j]>arr[j+1]){
           arr[j]^=arr[j+1];
           arr[j+1]^=arr[j];
           arr[j]^=arr[j+1];
       }
           }

          练习:
            完成以下数组的冒泡排序
     var array=[56,84,23,15,90,67];
    3.数组的常用方法
      1.toString();
        作用:将一个数组转换为字符串,并返回转换后的结果
        语法:var str=数组名.toString();
      2.join()
        作用:将数组的元素通过指定的字符连接到一起,并返回连接后的字符串。
        语法:var str=数组名.join("字符串");

        练习:使用数组实现以下图像:
           *
           **
           ***
           ****
           *****
      3.concat()
        作用:拼接两个或更多的数组,并返回拼接后的结果。
        语法:var result=数组名.concat(数组1,数组2,...);
        注意:
           1.要拼接的数据可以是数组,也可以是普通的数据。
           2.concat不会改变原有数组,而是返回拼接后的数组。
         练习:
           声明两个数组分别保存一些国家的名称
              1.数组l:大国
       2.数组s:小国
            将小国全部移入到大国数组中,并且将小国数组清空。
      4.slice()
        作用:截取子数组,从指定的数组中,截取几个连续的元素组成一个新的数组。
        语法:var arr=数组名.slice(start,[end]);
          start:从哪个下标位置处开始截取,取值为正,从前向后算,取值为负,从后向前。
         ex:      0      1       2        3
         var l=["中国","美国","英国","俄罗斯"];
                  -4     -3     -2      -1
          end:指定结束位置处的下标(不包含),该参数可以省略,如果省略的话,就是从start开始一直截取到数组的尾部。
      5.splice()
        作用:允许从指定的数组中,删除一部分元素,同时再添加另一部分元素。
        语法:arr.splice(start,count,e1,e2,...);
           start:指定要添加或删除元素的起始下标位置。
           count:指定要删除元素的个数,取值为0表示不删除。
           e1,e2:要增加的新元素,可以多个。
        返回值:返回的是一个由删除元素所组成的数组。
        注意:该函数会改变现有数组。
        练习:
           声明一个数组,数组元素随意,将数组中第三个元素删除,然后在数组的最后位置添加一个新元素。
      6.reverse()
        作用:将数组反转
        语法:数组名.reverse();
        练习:
          声明一个数组,内容随意。
          调用reverse函数后,将数组打印在控制台查看结果。
      7.sort()
        1.作用:排序,默认情况下,按照数组元素的  unicode码进行升序排序。
        2.语法:数组名.sort();
        3.特殊用法
          允许自定义排序函数,实现对数字的升序或降序的排序。
          语法:数组名.sort(排序函数)
            var arr=[12,3,85,7,46];
     1.自定义函数(升序)
       function sortAsc(a,b){
          return a-b;
       }
     2.自定义函数(降序)
       function sortDsc(a,b){
          return b-a;
       }
     3.原理:
        1·sortAsc定义两个参数a和b,表示数组中的相邻的两个数字。
        2.将sortAsc函数指定给sort函数,数组会自动传递数据到sortAsc函数中,如果sortAsc返回值>0的话,则交换两个数字的位置,否则不变。
            4.匿名函数
       匿名函数:是一个没有名称的函数,只用一次。
              升序:
      arr.sort(function(a,b){return a-b;})
              降序:
      arr.sort(function(a,b){return b-a};)
     练习:
       1.声明一个整数数组,随意定义数字。
       2.页面上添加两个按钮,一个“升序”按钮,一个“降序”按钮。
       3.点击升序按钮时,数组按升序排序,并打印在控制台。
       4.点击降序按钮时,数组按降序排序,并打印在控制台。
      8.进出栈操作
        js是按照标准的“栈式操作”访问数组的。
        所有的“栈式操作”的特点都是“后进先出”。
        1.push()
          入栈,在栈顶(数组的尾部)添加指定的元素,并返回新数组的长度。
          var arr=[10,20,30];
          //向栈顶增加新数据40
          var res=arr.push(40); //res的结果:4
        2.pop()
          出栈,删除(删除栈顶数据)并返回删除元素。
          var arr=[10,20,30]
          var r1=arr.pop(); //r1结果:30
        3.shift()
          作用:删除数组头部的(第一个)元素并返回删除元素。
          var arr=[10,20,30];
          var res=arr.shift();//结果:10
        4.unshift()
          作用:在数组的头部元素位置处,增加新元素。
          var arr=[10,20,30];
          var res=arr.unshift(40);//结果:4
          练习:
            定义一个数组,内容随意,在数组的尾部添加一个新的元素“A”,然后删除数组头部的第一个元素。  
    4.二维数组
      1.什么是二维数组
        在一个数组中的元素又是一个数组,也称为数组的数组。
      2.二维数组的使用
        var names=[
           ["孙悟空","蜘蛛精","唐三藏"],
           ["贾宝玉","薛宝钗","王熙凤"],
           ["宋江","武大郎","武松"]
        ];
        names[0][1]
       练习:
         根据省份信息,查询城市列表
            1.创建一个一维数组,保存几个省份名称;
     2.创建一个二维数组,保存上面省份所对应的城市信息;
     3.创建一个函数,接收一个身份的名称做参数,打印该省份所对应的城市信息。
       

  • 相关阅读:
    poj 1159
    poj1102
    在WebDynpro中的table控件中添加Search help的方法
    用Writer写的第一篇日志
    上路
    C# IList, ArrayList与List的区别详解 & 简单用法举例
    诸葛亮为什么难以入围千古名相之列
    Silverlight5.0正式发布附下载地址
    arcgis server 9.3 问题总结[转]
    AO 直接调用GeoProcessing 工具
  • 原文地址:https://www.cnblogs.com/QiliPING9/p/9027911.html
Copyright © 2011-2022 走看看