您的当前位置:首页正文

JavaScript网页编程之------数组相关知识

2020-11-27 来源:客趣旅游网

1、Js中的数组的长度是可以自动增长的

2、Js中的数组的功能相当于Java中的数组和集合的综合

3、var arr=[3,2,-4,78,10];//正确,注意,Java赋初值用的是大括号,而Js用的是中括号

var arr[]=[3,2,-4,78,10];//错误的,不能声明成arr[]----声明时不能带中括号

4、遍历数组

5、Js中的数组当中可以存储不同数据类型的数据

<script type="text/javascript">
 //数组定义的方式1: 定义时直接赋初值
 var arr =[12,34,2,-3,90,12];
 //alert(typeof(arr)); //object
 //alert("len:"+arr.length);
 //遍历数组
 for(var x=0;x<arr.length;x++){
 	document.write("arr["+x+"]="+ arr[x]+" ");
 }
 document.write("<br/>");
 
 arr[0]=-1000;
 arr[7]=666;//数组可以自动增长,且arr[6]没有赋值则是undefined
 for(var x=0;x<arr.length;x++){
 	document.write("arr["+x+"]="+ arr[x]+" ");
 }
 document.write("<br/>");
 
 var arr2=[];
 //alert(arr2.length);//0
 arr2[1]=10;
 for(var x=0;x<arr2.length;x++){
 	document.write("arr2["+x+"]="+ arr2[x]+" ");
 }
 document.write("<br/>");
 
 //※※错误的声明方式--数组
 //int[] arr3 ={1,2,3};
 //var[] arr3 = [1,2,3];//错的,[]代表的是数组类型,而js中,所有数据类型只有一个var声明,不存在“var[]”这种类型
 
 var arr4=[1,2,3,100];
 arr4[0]="abc";
 arr4[1]=true;
 for(var x=0;x<arr4.length;x++){
 	document.write("arr4["+x+"]="+ arr4[x]+" ");
 }
 document.write("<br/>");
 
 //※※综上,js数组的两个特点:
 //1,长度是可变的
 //2,元素的类型是任意的
 </script>

注:语法上是可以的,因为它有集合的特性,各种类型的数据都可以赋给它。虽然这样,但我们做项目时,一个数组最好放同一种类型的数据。

6、Js中数组的另一种定义方式:使用js当中的Array对象

注:用Array对象定义数组时,参数为1时,是指数组的长度;若大于1时,直接就是数组中的元素初值

var arr2 = new Array(5); //定义长度为5的数组----参数为1时,是长度

var arr3 = new Array(5, 6, 7); //参数大于1时,就是元素的初值

7、Js中Array对象中的方法

1)concat 方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。

2)join 方法:返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。

3)reverse 方法:返回一个元素顺序被反转的 Array 对象。

4)shift 方法: 移除数组中的第一个元素并返回该元素。-----removeFirst()

5)slice 方法 (Array): 返回一个数组的一段。-----类似String中的substring()

6)sort 方法: 返回一个元素已经进行了排序的 Array 对象。

7)splice 方法: 替换。从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

8)unshift 方法:将指定的元素插入数组开始位置。返回值为新数组的长度----addFirst()
例:

<html>
 <head>
 <title>Array对象使用方法演示</title>
 </head>
 
 <body>
 <script type="text/javascript" src="out.js">
 </script>
 <script type="text/javascript">
 var arr=["aaa","bbb","ccc","ddd"];
 println(arr);
 var arr2=["111","222","333","okok"];
 var newArr = arr.concat(arr2);
 println(newArr);
 
 println(newArr.join("-"));
 
 println("<hr/>");
 
 //pop() : 移除数组中的最后一个元素并返回该元素。
 println( newArr.pop() );
 println(newArr);
 //push() : 将新元素添加到一个数组中,并返回数组的新长度值。
 arr.push("x1","x2");
 println(arr);
 //arr.push("y1",arr2,"z1");//注意1,arr2在arr当中是一个元素---即arr变成二维数组。注意2,push方法会改变原来的数组。arr长度为:9
 arr=arr.concat("y1",arr2,"z1");//注意1,该方法会把数组arr2当中的每个元素取出来,分别添加到arr当中---arr还是一维数组。注意2,concat方法不会改变原来的数组,连接结果以新数组的形式返回。旧arr的长度还是6,新arr的长度是12
 println(arr);
 println(arr.length);
 
 arr.sort();
 println(arr);
 
 arr.splice(1, 3, "u1","u2","u3","u4","u5");//从1位置开始,删掉3个元素,并且在删除的位置插入:"u1","u2","u3","u4","u5"
 println(arr);
 
 //※※※做栈和队列的提示
 //unshift---addFirst concat--addLast() shift---removeFirst() pop---removeLast()
 //Array.prototype.addFirst=unshift;
 
 </script>
 
 <script type="text/javascript" src="arraytools.js">
 </script>
 <script type="text/javascript">
 var arr=["aaa","bbb","ccc","ddd"];
 var max = arr.getMax();
 println(max);
 println(arr);
 
 </script>
 </body>
</html>

其中用到的工具

arraytools.js

//给原型对象添加一个getMax()方法
Array.prototype.getMax = function() {
	var temp=0;
	for(var x=1;x<this.length;x++){
	if(this[x]>this[temp]){
	temp = x;
	}
	}
	return this[temp];
};
Array.prototype.toString = function() {
	return "["+this.join("")+"]";
};

out.js

function println(param){
	document.write(param+"<br/>");
}
function print(param){
	document.write(param);
}

显示全文