• Javascript数组


    数组的概念:引用类型的对象。

    1. 本质:内存中存储多个数据的空间,再取个名字。
    2. 数据结构:数据结构不同,擅长的操作不同。
    3. 数组特点:便于数据的查找与维护。

    数组的创建:

    1. 方法1:var 数组名=【元素1,元素2,元素3......元素n】;
    2. 注意:可以创建空数组,建议创建同时赋值!
    3. 方式2:var 数组名=new Array();

    数组的使用:

    1. 下标:每个元素都有一个对于的房间号,默认从0开始,逐一递增。
    2. 元素:其实就是数组中保存的一个个数据,可以是各种数据类型。
    3. 访问数组中已有的元素:数组中元素的使用与普通变量完全一样。
    4. 使用数组名【下标】:获取对应下标的数据。
    5. 使用数组名【下标】=新值:将新值替换原值。

    数组的属性:

    1. .length属性:记录着数组中理论上元素的个数。实际保存的是数组中最后一个元素下标+1。length的值与实际元素的个数不一定相同。
    2. 注意:length不能脱离数组单独使用,自动维护不需要手动修改。

    常见操作:

    1. 获取数组中最后一个元素:arr【arr.length-1】
    2. 获取元素中倒数第n个元素:arr【arr.length-n】
    3. 在数组的最后追究一个新元素:arr.【arr.length】=新元素
    4. 修改数组的length属性,可以达到删除元素的目的!
    5. 删除数组中最后一个元素:arr.length--
    6. 删除数组中最后n个元素:arr.length-=n
    7. 关于数组的本质:引用类型的对象
    8. 输出方式:dir:输出数据的结构及其内容,而不是立刻输出,点击小三角后才在内存中输出正确的内容!
    9. 遍历:依次查找数组中每个元素,并执行相同操作!

          for (var i=0;i<=arr.length;i++) {

            arr[i];

          }  

    数组的分类:

    1. 索引数组:下标为数字的数组
    2. 关联数组:下标自定义的值
    3. 创建数组:var arr=【】;  //创建空数组;arr【“下标名”】;=值;  向空数组添加新元素,并自定义下标名。
    4. 使用数组:元素与普通数组一样,用法同普通数组。  取值:arr【下标名】  赋值:arr【下标名】=新值
    5. 注意:关联数组的length属性失效,永远为0;
    6. 遍历:for in循环遍历关联数组!  

          for(var key in arr) {

            arr[key];

          }  注释:key:用于每次循环保存临时变量下标的变量;in:关键词;arr:需要遍历的数组的数组名

        7.总结:数组的特点:便于数据的维护和查找!

        8.关联数组  vs  索引数组:关联数组:查找更快,效率更高。原因:直接定位元素,查找速度不受元素个数影响;索引数组:相对较慢!原因:只能遍历查找,查找效率受元素个数,位置影响!     

    数组的API

    1. API:别人已经写好的,咱们直接使用的程序。
    2. 数组:存储多个数据,并且提供操作这些数据的API对象。 
    3. 数组转为string

          3.1 string(arr);  arr.toString();

          3.2 以上两个API都可以将索引数组转为字符串。------将数组中每个元素转为string然后之间用“,”拼接。

          3.3 arr.join(“拼接符”);将数组中的每个元素按指定的拼接符拼接。注意:如果省略拼接符,默认用“,”拼接。

          3.4 固定套路:var str="<ANY>"+arr.join("</ANY><ANY>")+"</ANY>"

                elem.innerHTML=str;

      4.数组的拼接与选取

          4.1 拼接:将多个元素或数组拼接为一个新数组;

             var new_arr=old_arr.concat(值,数组);

              注意:concat();返回新数组,不修改原数组;如果需要拼接的是一个数组,将数组中的元素打散为一个个元素在拼接!

         4.2 选取:选择数组中指定位置之间的元素,组成新数组返回。

            var new_arr=old_arr.slice(starti,endi);

             注意:不修改原数组

                 如果一个API两个参数都是下标,一般含头不含尾!slice(starti,starti+n);//n表示选取元素的个数

                 支持负数参数:原理使用length属性。arr.slice(starti,-n)<=>arr.slice(starti,arr.length-n);并不是所有的API都支持负数参数,使用arr.length-n。

                 省略第二个参数:从起始位置一直选取到结尾。var new_arr=arr.slice();

                 同时省略两个参数:复制数组;var new_arr=arr.slice();

      5.数组的增删改----splice

           5.1增加:arr.splice(starti,0,值1,值2,值3......值n);

           注意:在指定位置插入新值后,后续所有位置依次后移;如果插入的值是数组,不会打散,之间将数组插入指定位置。

           5.2删除:arr.splice(starti,n);  //从starti位置开始删除n个元素

           注意:直接修改原数组;支持负数参数;可以省略第二个参数----一直删到结尾;有返回值----被删除的元素组成的新数据。

          5.3修改:arr.splice(starti,n,值1,值2.....);  其实就是将原值删除,加入新值!  //从starti位置开始,删除n个元素,在加入新值

           注意:删除的元素不必与插入的元素个数保存一致!

      6.排序:

        6.1翻转----反向:  arr.reverse();  //将元素组中的元素按原顺序颠倒!

            注意:直接修改原数组,不返回新值;不能修改内容的顺序,只是头尾颠倒!

        6.2顺序排序:  arr.sort(比较器函数);  //将数组中的内容按大到小/按小到大的顺序排序 !

                    注意:默认不传参数,将数组中的数据从小到大排序;直接修改原数组,不返回新值!

                    原理:sort默认将数组中的元素转为字符串,再按照字符编码比较大小!

        6.3比较器函数:挨个比较两个元素之间的大小。

                    格式:function comp(a,b){

                 return a-b;

                         }

         如果a>b,需要返回一个大于0的数!

         如果a=b,需要返回一个等于0的数!

         如果a<b,需要返回一个小于0的数!

      7.栈:一端开口,一端封闭的数组结构!

            7.1出栈,入栈:

          出栈:从数组中删除一个元素。

          入栈:向数组中添加一个元素。

            7.2队列:两端开口的数据结构

      8.二位数组:

            8.1eg:var arr=[[1,2,3,4],[3,4,5,6],[6,7,8,9]];

               8.2二维数组的遍历:分为两步:1、先获取二维数组中的每个子数组;2、遍历每个子数组!

    完结!      

          

  • 相关阅读:
    改变this指向的三个函数call, apply, bind的实现
    vscode 前端常用插件推荐
    Java SPI详解
    数据技术分享
    深入SpringMVC视图解析器
    .gitignore文件失效的解决方案
    Spring的事件监听机制
    Spring MVC 配置类 WebMvcConfigurerAdapter
    一起来读Netty In Action之传输(三)
    Tomcat性能调优参数简介
  • 原文地址:https://www.cnblogs.com/woheni/p/11259498.html
Copyright © 2020-2023  润新知