今天我们又要讲一章重要的内容,数组。这也是到以后代码里必不可少的一部分。他的作用是同样数据类型的对象放到一个集合中,一个变量中,还可以通过下标来获取这个集合指定位置的内容。但是和他名字不同的是,在数组里放的内容不只是数,而是所有内容都可以,包括布尔值,字符串,各种对象,甚至还可以在数组里放数组(也就是高维数组)等等,这就是数组。下面让我们来具体了解一下数组的用法吧。

1.数组的表示

数组在程序中,用中括号表示,里面的内容用英文的逗号“,”进行分割,比如放了三个数字一到三的数组,就是[1,2,3]    这个应该很好理解,如果放了三个字符串a b c那就是[“a”,”b”,”c”],ps:字符串记得加引号。

2.数组的创建

要创建一个数组,当然可以通过直接输入初始值来创建,比如var arr=[1,2,3];    这是最基本的创建方法,那我们要创建一个空数组怎么办呢,这时要用到构造函数。就是var arr=new Array(长度);    这样可以直接创建一个指定长度的空数组,比如要创建一个长度为5的空数组:var arr=new Array(5);  还有一个构造函数,可以传入多个内容比如var arr=new Array(5,6,7,8);  这时创建出来的数组就会自动判断数据类型(js本生就是泛型)根据传入内容的数量创建,对应长度和类型的数组。打印以上例子的结果是[5,6,7,8];

3.数组的长度

数组的长度就是数组内内容的个数,比如 [1,3,5,7,9] 这个数组,长度为5 , [‘a’,’b’,’c’] 的长度为3。可以用数组的length属性获得的长度,var arr=[1,2,3];log(arr.length);这就是一个输出arr数组长度的例子,结果当然为3。

4.数组的下标

数组的下标是获取数组中指定内容的索引,数组中的每个内容,都有一个下标,按照顺序,从0开始,[1,2,3] 这个数组的三个内容的下标分别是0,1,2。

5.数组长度与下标的关系

在用数组的时候有个易错点,那就是很多人会认为最后一个内容的下标,就是数组的长度。然而下标是从0开始计数,而长度是从1开始数的。具体算下来,数组最后一个内容的下标就是数组长度-1。

6.数组获取指定位置的内容

那我们如何获取并查看修改数组内的值呢,语法是:变量名[下标]    就这么简单,但是要注意的是,下标是从0开始的,举个例子:

var arr=[2,3,4,5];

//输出下标为2的内容,即第三个·

log(arr(2));

//输出信息3

arr[0]=6;

log(arr);

//输出信息[6,3,4,5];

我们用这个方法获得到了数组里的内容后,可以直接输出,赋值给变量或是直接修改。

7.push放入内容

push是数组的一个方法,用来朝数组内添加元素。语法是:数组.push(放入内容);    运行时,会先把数组最后增加一格长度,并且赋值成括号内的放入内容。非常简单,就不给例子了。

8.pop和shift删除首位

pop和shift两个数组的方法,分别可以用来删除数组的最后一位和第一位,同时会返回删掉的内容。比如原来一个数组arr的值是[1,2,3,4],这时运行一下arr.pop();他就成[1,2,3],这时再运行arr.shift();  他的值就变成了[2,3]  用法也很简单,自己尝试吧,一般返回值的用处并不是很大。

9.split字符串分割至数组

我们可以通过别的类中的一些函数或者数组类中的函数,可以把数组和其他类中互相转换。比如说split就,可以把字符串转换到数组,split的主要作用就是把数组通过制定字符切割成多个字符串放入一个字符串数组。比如说一个字符串var str=”abcdabcdabcd”;然后用split处理,我们用一个新的变量,var arr=str.split(“c”);那么分割出来的字符串就是ab,dab,dab,d。如果打印输出这个数那么打印出来的内容为[“ab”,”dab”,”dab”,”d”]

10.循环遍历数组

我们可以用循环来对数组里的每一个内容进行操作,我们直接用一个例子来说明这个功能吧,假如我们需要对一个数字数组的每一位的值增加一

  遍历数组结果

    从大体上来看这个例子,我们可以发现在每一次的循环中,都通过下标获取到了数组的某一个内容,并用我们之前讲过的双加号的方法把他的值扩大到比原来大一的值。再仔细看,每次获取的下标的大小,从第一次循环,i的初始值为0,那么数组下标为0的那一个也就是第一个,一直每次循环i++获取下标更大一的内容,一直到最后一个,之前讲过在for循环中,每次循环会判断第二格的内容是否成立,在运行下面的内容,也就是说,这里的i<array.length运行时,如果i=array.length时是不会运行的。正好到array数组长度的前一个,也就是下标的最后一个,这就成功把数组的每一位都修改掉了。  =””   这个也是数组的关键内容,一定要理解这一个示例。那么,如果你理解了,那就留个思考题,如何把一个数组,下标是偶数的那些内容扩大到原来的两倍。我这给两种思路的提示,尽量不要看哈。第一种传统思路,百分号是取余数的功能,所以偶数取余2,得出的结果都是0,这样可以判断出是否是偶数位。第二种是从循环上跳过奇数的思路,即每次循环把下标加二,但是要注意不要错位咯。两种思路的答案我之后会在评论区置顶公布(所以就不要想着交易什么了,哈哈)。=”” 11.高维数组=”” 高维数组就是数组中嵌套数组,比如说 var=”” arr=”[[1,2,3],[4,5,6],[7,8,9]];” 这就是一个数组存放了三个数字数组在里面。那我们要获取输出第二个数组中的第三个值的代码就为log(arr[1][2]);=””   高维数组在多重嵌套for循环做处理常用,这里只是略讲,不过也没有什么特别的功能,大家应该能自己看懂咯。=”” 小结=”” 这一章的内容在以后会非常常用,比如说要做字符串处理,或者随机打印点限定好的几句话中的一句,等等。大家一定要牢记咯。 =”” 最后附赠大家一个我写的颜文字数组,比如你要写一个随机发送评论的脚本,那么就可以用到啦。=””  var bqb=”[”     “(●—●)”,=””     “(づ ●─● )づ”,=””     “_(:з」∠)_”,=””     “(๑=””>؂<๑)”,     “ԅ(¯ㅂ¯ԅ)”,     “(。ò ∀ ó。)”,     “~( ̄▽ ̄~)~”,     “( ー̀εー́ )”,     “(눈_눈)”,     “(ಡωಡ) “,     “(「・ω・)「嘿”,     “٩( ‘ω’ )و “,     “✪ω✪”,     “(๑°3°๑)”,     “(⑉°з°)-♡”,     “✺◟(∗❛ัᴗ❛ั∗)◞✺”,     “(❁´◡`❁)*✲゚*”,     “(๑Ő௰Ő๑)”,     “(ง •̀_•́)ง”,     “(๑˙ー˙๑)”,     “(⁄ ⁄•⁄ω⁄•⁄ ⁄)”,     “(๑• . •๑)”,     “(。・ω・。)ノ♡”,     “(*/∇\*)”,     “ψ(`∇´)ψ”,     “(´▽`)ノ♪”,     “_(:3」∠❀)_”,     “(¦3[▓▓]”,     “Ծ‸Ծ”,     “눈_눈”,     “(ಥ_ಥ)”,     “(ノಥ益ಥ)”,     “(๑•̀ㅂ•́)و✧”,     “(๑•ี_เ•ี๑)”,     “( •̥́ ˍ •̀ू )”,     “(〃′o`)”,     “ฺ(◣д◢)ฺ”,     “( ✘_✘ )↯”,     “( ̄ε(# ̄)”,     “(๑>ڡ<)☆”,     “( ̄ε(# ̄)”,     “(๑òᆺó๑)”,     “ヾ(^。^*)”,     “(๑òᆺó๑)o”,”( ̄▽ ̄*)ゞ)”,”) ̄▽ ̄*)o”,” ( ̄ε(# ̄)☆”,”╰╮o( ̄▽ ̄///)”,     “(σ′▽‵)′▽‵)σ”,”(╭☞•́⍛•̀)╭☞”,”٩( ‘ω’ )و” ];        大家复制到自己的脚本中就能用了,在js中,除了字符串或者一句语句内,换行一般不会有影响。那么如何随机出一个这个数组中的字符串呢,如果直接写bqb[random(0,具体表情包的个数)],这样子获取的话,还要去一个一个数表情包有几个,太麻烦了,如果对这个数组进行修改的话,这边的代码也还要修改,不方便。如何通过数组的长度来生成随机整数也留做第二个思考题吧。

</array.length运行时,如果i=array.length时是不会运行的。正好到array数组长度的前一个,也就是下标的最后一个,这就成功把数组的每一位都修改掉了。>

发表评论

后才能评论