JavaScript数据结构之数组

最近在学习JavaScript的相关数据结构,因为之前有了解一点点数据结构相关的内容,所以学习起来难度不是很大,在这里做一个记录,以便后面查阅,毕竟好记性不如烂笔头嘛!

几乎所有的编程语言都原生的支持数组类型,因为数组是最简单的内存数据结构。JavaScript里也有数组类型,虽然它的第一个版本并没有支持数组。

数组一般是用来存储一系列同一种数据类型的值,但在JavaScript中可以在数组中保存不同类型的值,但是不推荐这么用,别这样做!别这样做!别这样做!(重要的事说三遍)


一、创建和初始化数组

1、用JavaScript声明、创建和初始化数组很简单,就像下面这样:

var  week = new Array();(1)

var month = new Array(12);(2)

使用new关键字就能够很简单地声明并初始化一个数组【(1)】,也可以指定相应的长度【(2)】。


其实使用new方法并不是最好的方式,想要创建一个数组,只需:

var week = [];

也可以初始化数组,如下:

var week = ['sunday','monday','tuesday','wednesday','thursday','friday','saturday'];


2、如果想知道数组里有多少个元素,可以使用length属性。

console.log(week.length);//输出为7


3、要想访问数组里特定位置的元素,可以用中括号传递数组的位置,得到想知道的值或者赋新值。假如想输出所有数组里的元素,可以通过循环遍历数组,如下:

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

console.log(week[i]);

}


二、添加和删除元素

1、从数组中添加和删除元素很容易,加入有一个数组numbers,初始化成0-9:

var numbers = [1,2,3,4,5,6,7,8,9];

如果想给数组添加一个元素(比如10),只要把值赋在数组最后一个空位上就好。

numbers[numbers.length] = 10;

另外,还可用push方法,可以把元素添加到数组的末尾,通过push可以添加任意个元素。

numbers.push(11);

numbers.push(12,13);


现在,我们希望在数组中插入一个值-1,并且是插在数组的首位,可以如下方法:

for(var i=numbers.length;i>=0;i--){

numbers[i] = numbers[i-1];

}

numbers[0]=-1;

其实有一个更为简单的方法叫unshift,可以直接把数值插入到数组的首位:

numbers.unshift(-2);

numbers.unshift(-4,-3);


2、要删除数组里最靠后的元素,可以使用pop方法:

numbers.pop();

要是只想删除第一个元素怎么办?简单,使用shift方法:

numbers.shift();


3、那么如何在数组中的任意位置删除或添加元素呢?此时splice方法派上用场了,它可以简单地通过指定位置和索引,就可以删除相应位置和数量的元素:

numbers.splice(5,3);//删除了从数组索引5开始的3个元素,即numbers[5]、numbers[6]、numbers[7]被删除了

现在,突然发现刚刚删错了,那怎么恢复原先的数组呢?别着急,同样用splice可以搞定,哇!这么神奇!

numbers.splice(5,0,2,3,4);

splice方法接收的第一个参数表示想要删除或者插入的元素的索引值,第二个参数是删除元素的个数(上面一个例子我们不是删除元素,所以传入的是0)。第三个参数往后,就是要加到数组里的值。



JavaScript的数组方法参考:

1、concat:连接2个或更多数组,并返回结果。

2、every:对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。

3、filter:对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。

4、forEach:对数组中的每一项运行给定函数。没有返回值

5、join:将所有数组的元素连接成一个字符串。

6、indexOf:返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1.

7、lastIndexOf:返回在数组中搜索到的与给定参数相等的元素的索引最大的值。

8、map:对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。

9、reverse:颠倒数组中元素的顺序。

10、slice:传入索引值,将数组中对应索引范围内的元素作为新数组返回。

11、some:对数组中的每一项运行给定函数,如果任一项返回true,则返回true。

12、sort:按照字母表对数组排序,支持传入指定排序方法的函数作为参数。

13、toString:将数组作为字符串输出。

14、valueOf:和toString类似,将数组作为字符串返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值