Array类型总结

ECMAScript数组的每一项可以保存任意类型的数据,它的大小也是可以动态调整的。

  1. 创造数组的两种方式

  • 第一种是根据Array构造函数。如果知道数组长度,也可以在创造时就规定;也可以在定义时赋值。另外,你还可以省略new操作符。
			var aArr=new Array();
			var aArr=new Array(20);
			var aArr=new Array("w","w");
  • 第二种使用数组字面量表示法。
    			var aArr=[1,2,3,4];

    在读取数组中的值时,使用方括号法。如:使用第二种方法定义的数组aArr[0]的值为1.数组的项数保存在length属性中。它不仅能从数组末尾移除项,还可以向数组增添新项.给lenth属性赋值0,可快速清空数组。

2.检测数组

  • 在全局作用域下或一个网页的情况下,使用value instanceof Array
  • 为了解决上述方法的不足,有Array.isArray()这一方法

3.转化方法

  • toString(),返回数组中每个值的字符串形式,参数默认为10,可设置2~36的整数。
  • valueOf(),返回数组值本身。
  • alert(),接收字符串参数,所以会在后台调用toString()

4.栈方法

1.push():push()方法可以接收任意数量的参数,把他们逐个添加到数组末尾,并返回修改后的数组长度。

2.pop():pop()方法可以从数组末尾移除最后一项,返回移除的值。

            var aString=new Array();
			var iCount=aString.push("red","blue");
			alert(iCount);//2
			alert(aString);//red,blue
			var oString=aString.pop();
			alert(oString);//blue

5.队列方法

栈数据结构发的访问规则是后进先出,队列数据结构的访问规则是先进先出,也就是在队列的末端添加项,在队列的前端移除项。后者就是shift(),它能够移除第一项.从而正向模拟队列。

还有一个unshift()方法,顾名思义,即在前端添加项,与pop()结合可以反向模拟队列。

6.重排序方法

数组中已经存在两个可以用来重排序的方法:reverse()和sort()。前者会反转数组的顺序,后者则能够按升序排列数组(会用toString()方法转化成字符串并比较字符串

            var values=new Array(1,2,3,14);
			alert(values);
			alert(values.reverse());//14,3,2,1
			alert(values.sort());//1,14,2,3

为了能够按数值大小进行排序,我们定义了这样的一个比较函数。

            function compare(value1,value2){
				return value1-value2;
			}
			value.sort(compare)//从小到大排序

7.操作方法

1.contact()可以将参数添加原来数组并返回新的数组。

2.slice()可以接收一个或两个参数,即要返回项的起始位置和结束位置,注意该方法不会影响原数组。

			var colors=["red","green","blue"];
			var colors2=colors.concat("yellow",["black","brown"]);
			alert(colors);//red,green,blue
			alert(colors2);//red,green,blue,yellow,black,brown
			var colors3=colors.slice(1,4);
			alert(colors3);//green,blue

你还可以用slice()做:删除,插入(提供三个参数,起始位置、0、要插入的项)、替换(提供三个参数:起始位置,要删除的项数,要插入的任意数量的项)。

8.位置方法

数组有两个位置方法:indexOf() and lastIndexOf()。连个方法都接收两个参数:要查找的项和查找起点位置的索引。indexOf()是从数组的开头向后查找,lastIndexOf()则是从数组末尾开始向前查找。、

			var iNub=[1,2,3,4,5,6,7];
			alert(iNub.indexOf(3));//2
			alert(iNub.lastIndexOf(3))//2

猜你喜欢

转载自blog.csdn.net/mover999/article/details/81509270