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); }