js学习笔记 chapter5 引用类型
1.Array类型
js中的数组与其他多数语言中的数组有着相当大的区别。虽然js中的数组与其他语言中的数组都是数据的有序列表,但是与其他语言不同的是:
1.js中的数组每一项都可以保存任何类型的数据。
2.js数组大大小可以动态调整的。
2.array的栈方法LIFO,js中的数组提供了一种让数组的行为类似于其他数据结构的方法。具体来说,数组可以表现的酒香栈一样,后者是一种可以限制插入和删除项的数据结构。js为数组专门提供了push()和pop()方法,一遍实现类似栈的行为。
push()方法可以接受任意数量的参数,把他们组个添加到数组末尾,并返回修改后数组的长度。而pop()方法则从数组的末尾移除最后一项,减少数组的length值,然后返回移除的项。
3.与栈方法相对应的是队列方法。array的队列方法是模仿队列的数据结构的访问规则FIFO(first in first out)。也是通过push方法来向数组末端添加项目。使用shift()方法来从数组前端取出第一个项目。同时将输出长度减少1.
js中的数组还有一个unshift()方法,unshift()与shift()的用法相反。它能在数组前端添加人一个项,并返回新数组的长度。使用unshift()方法和pop()方法可以反方向来模拟队列。在数组前端添加项目,在数组厚点移除项目。
5.重排序方法
reverse()和sort()方法。sort()方法可以按自定义的方式进行排序,有点类似C#中的ICampare的用法,即你自己要写一个排序规则函数,sort()方法再来调用你所写的排序函数。
eg1:
1 var values = [0,1,5,10,15]; 2 values.sort(); 3 alert(values); //0,1,10,15,5
默认排序是根据字符的顺序来进行排序。但是不符合我们的要求。
1 function compare(value1,value2){ 2 if(value1 < value2){ 3 return -1; 4 }else if(value1 > value2){ 5 return 1; 6 }else{ 7 return 0; 8 } 9 } 10 11 var values = [0,1,5,10,15]; 12 values.sort(compare); 13 alert(values); //0,1,5,10,15;