标签:
1、数组的定义
值的有效集合
可以存放多种数据类型
2、创建数组
2.1、构造函数
var a1 = new Array(); //未定义数组的长度
var a2 = new Array(5); //数组的长度为5
var a3 = new Array(4,‘hello‘,new Date()); //数组的长度为3
2.2、字面量
var a4 = [];
var a5 = [10,‘hello‘,new Date()];
3、数组的索引和长度
length返回的是array的数组索引长度,数组索引只能是数字,如果是字符串的相当于对象属性了。
4、常用方法
jion(char) 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
slice(start,end) 从某个已有的数组返回选定的元素
concat(array) 连接两个或更多的数组,并返回结果。
reverse() 颠倒数组中元素的顺序。
sort() 对数组的元素进行排序
delete 不会改变索引的长度
splice() 删除元素,并向数组添加新元素。
栈方法
pop()删除并返回数组的最后一个元素
push()向数组的末尾添加一个或更多元素,并返回新的长度。
队列方法
shift()删除并返回数组的第一个元素
push()向数组的末尾添加一个或更多元素,并返回新的长度
unshift()向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()返回数组对象的原始值
toSource()返回该对象的源代码
toString()把数组转换为字符串,并返回结果。
toLocaleString()把数组转换为本地数组,并返回结果。
5、实例
<script type="text/javascript"> var a1 = new Array(); //未定义数组的长度 var a2 = new Array(5); //数组的长度为5 var a3 = new Array(4,‘hello‘,new Date()); //数组的长度为3 var a4 = []; var a5 = [10]; document.write(a1.length+‘<br />‘); document.write(a2.length+‘<br />‘); document.write(a3.length+‘<br />‘); document.write(a4.length+‘<br />‘); document.write(a5.length+‘<br />‘); //索引的方法 document.write(a3[1]+‘<br />‘); a1[100] = 100; document.write(a1.length+‘<br />‘); a1.length = 3; document.write(a1+‘<br />‘); a1.length = 100; document.write(a1+‘<br />‘); </script>
常用方法:
<script type="text/javascript"> var a1 = new Array(1,2,3,4); //document.write(a1.jion(‘_‘)); //1_2_3_4 document.write(‘<br />‘); document.write(a1.slice(1,3)); document.write(‘<br />‘); //2,3 var a2 = new Array(6,5); document.write(a1.concat(a2)); //1,2,3,4,6,5 document.write(‘<br />‘); var a2 = new Array(6,5); a2.reverse(); document.write(a2); //5,6 document.write(‘<br />‘); var a3 = new Array(6,5,4,3,2,1); delete a3[1] document.write(a3); //6,,4,3,2,1 document.write(‘<br />‘); var a3 = new Array(6,5,4,3,2,1); a3.sort(); document.write(a3); //1,2,3,4,5,6 document.write(‘<br />‘); //栈方法 var a4 = new Array(1,2,3,4,5); a4.push(5); document.write(a4+‘<br />‘); //1,2,3,4,5,5 a4.pop(a4); document.write(a4+‘<br />‘); //1,2,3,4,5 //队列方法 var a5 = new Array(1,2,3,4,5); a5.unshift(5); document.write("长度:"+a5.length+‘ ‘+a5+‘<br />‘); //长度:6 5,1,2,3,4,5 a5.shift(a5); document.write("长度:"+a5.length+‘ ‘+a5+‘<br />‘); //长度:5 1,2,3,4,5 </script>
注意:
1、栈是一种LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。栈中项的插入(push)和移除,只发生在一个位置——栈的顶部。ECMAScript为数组提供了push()和pop()方法,可以实现类似栈的行为。
push()方法可以接收任意数据的参数,把它们逐个添加到数组末尾,并返回修改后的数组长度。pop()方法从数组末尾移除最后一项,减少数组的length值
2、栈数据结构的访问规则是LIFO(后进先出),而队列数据结构的访问规则是FIFO(First-In-First-Out,先进先出)。队列在列表的末端添加项,从列表的前端移除项。push()方法是向数组末端添加项的方法,因此要模拟队列只需一个从数组前端取得项的方法——shift(),其能够移除数组中的第一个项并返回该项,同时数组的length-1。结合使用shift()和push()方法,可以像使用队列一样使用数组。
此外,ECMAScript还提供了unshift()方法,它能在数组前端添加任意个项并返回新数组的长度。因此,结合使用unshift()和pop()方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项
标签:
原文地址:http://www.cnblogs.com/foodoir/p/5720916.html