zoukankan      html  css  js  c++  java
  • JS基础——数组总结

    JS中数组被觉得是一种对象,慢慢的,怎么忽然感觉,JS中仅仅要能够独立出来的概念怎么都能够当成对象来解释呢?有点儿怀疑。继续学吧。先来总结一下JS中数组是怎样详细使用的。

    一、创建

          数组的创建在JS中和Object基本上是一样的。他能够通过newkeyword来声明,也能够通过字面量的方法来创建。JS中数组创建仅仅支持一维数组。

         1、new

             var box=new Array();//new keyword可省略,内部可对数组进行初始化,或者声明元素的个数,这点其他语言同样

         2、字面量

            var box=[]; //相同也能够进行初始化

         3、注意:1、默认数组中每一个元素用‘,’分开,能够用Join()方法是用不同的分隔符对数组元素进行切割,比如:Join('|')

                    2、JS中数组元素能够为随意类型,甚至能够为数组。创建一个复杂类型的数组:

               

    var box = [ {                            //第一个元素为包括name和age属性的一个对象
    	         name: 'wyy',
    	         age:22
    	     },
    	     '计算机编程',
    	     [1, 2, 45, 6,new Object()], //字面量方法创建一个数组,内包括一个对象
    	     25 + 34,
    	     new Array(6,7,8)  //这里为一个数组
    	    ]
    

    二、元素赋值和调用

            1、赋值

                在为数组元素进行赋值时,能够直接初始化为各个元素进行赋值,但这样的方式不够灵活,假设我们想动态为数组加入元素时,这个时候须要的就是在外部直接为数组中的元素进行赋值。能够利用数组中各个元素的name为其赋值,能够利用元素下标进行赋值。           

    var  box=[];
    box.name='wyy';
    box.age=22;
    alert(box['name']); //这里alert(box)直接弹出数组box的话不支持。会弹出空
    
    或者採用数组下标的方式
    var  box=[];
    box[0]='wyy';
    box[1]=22;
    alert(box); //利用下标方式能够弹出box中的元素内容
    鉴于上述两种方式的差异所以,通常赋值时,我们採用索引下标进行赋值。那么依据赋值的方式,数组在调用的时候原理也是一样的。通过元素名称和索引下标来进行调用。同一时候,这里能够用length属性来获得数组元素的个数和数组中最后一个元素的值。

    三、对象和操作方法

    对象方法

      1、栈

         push:在数组末尾加入一个元素 语法:box.push('123') 注意的是假设是alert(box.push('123'))会返回最新数组的长度

         pop:移除数组末尾元素:语法 alert(box.pop())//返回移除元素的值,这里和push有差别

       2、队列

         push:同栈中的push方法

         shift:移除最先进去的元素 语法:alert(box.shift())//打印出移除元素

         unshift:为数组前端加入一个元素,并返回新数组的长度。box.unshift('123')//存在不兼容现象

       3、排序

         reverse:返回一个逆序排列的数组,原数组也被逆序了,说明操作的是数组的引用

         sort:从小到大排序,这个函数在使用前须要对其排序规则进行声明。可正负颠倒。

     操作方法:

        1、concat:基于原来的数组再追加一个新的数组

        2、slice()和spice()这两个方法用途非常广,參数不定,规则也不定,使用时,须要细致区分。

    slice主要用于取值,但不影响原来数组的值

    spice主要用于删除数组中指定的元素。比如:Box.splice(1,3)//从第一个元素開始,取3个元素,而且将原数组中这些元素删掉。同一时候也能够用来插入元素,比如:

    Box.splice(1,0,'wlj','dsf')//在第一个元素后插入后面的元素

     var box1= box.splice(1,0,'hello'); //这里第二个參数为0,所以没有要删除的位置,那么含义转变成在第一个位置后面插入一个元素‘hello’。


    小结:这一部分的知识比較碎,没有太多原理上的知识,我们必须将学过的知识进行知网,给它一条线来串起来,就像一个固定的模式一样能够从创建使用等方面将它们联系起来,多多回想,通过样例来加深理解。

     

  • 相关阅读:
    Redis 服务端程序实现原理
    Redis 中的客户端
    Redis 中的数据持久化策略(AOF)
    Redis 中的数据持久化策略(RDB)
    Redis 中的数据库
    Redis 的底层数据结构(对象)
    Redis 的底层数据结构(压缩列表)
    Redis 的底层数据结构(整数集合)
    又离职了~
    如何救活被屏蔽的主机,继续开发工作
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4095134.html
Copyright © 2011-2022 走看看