標籤:
原文:javascript Array對象
一,建立數組對象
JavaScript的數組支援了對任何資料類型的支援,並不會像java,C#那樣指定了數群組類型只能儲存這種類型。
我們可以使用以下三種方法來建立JavaScript數組對象,
1,var arr=new Array();
2 , var arr=new Array([size]);//size為整數,定義一個固定長度的數組
3,var arr=new Array(element1[,element2[,…elementN]]);//elementN 為數組的元素
二,數組賦值
從上面建立數組對象的方法來看,只有使用第一種和第二種方法建立的數組對象需要再次賦值,第三種方法在建立的時候已經賦值。對於第一種和第二種方法建立的數組對象我們可以使用以下的方法進行賦值
var arr1=new Array();arr1[0]=1;arr1[1]=2;arr1[2]=3;var arr2=new Array(3);arr2[0]=1;arr2[1]=2;arr2[2]=3;
但對於建立數組時指定了數組對象的長度,只能在長度範圍內對數組進行賦值,超出範圍則無法賦值,例如上面例子中 arr[3]=4,是不能賦值成功的。
當然除了上面的賦值方式外,我們還可以使用Array對象提供的方法對數組進行賦值,將在下面數組方法中介紹。
三,數組的訪問
javascript數組的訪問方式跟其他的語言的訪問數組的方式相同,都是通過下標對數組進行訪問,如下
var arr1=new Array();arr1[0]=1;arr1[1]=2;arr1[2]=3;document.write(arr1[0]);
四 ,數組元素的修改
JavaScript 數組元素的修改非常簡單,只要像指定下標添加一個新值即可,如下
var arr1=new Array(); arr1[0]=1; arr1[1]=2; arr1[2]=3; arr1[0]=4; document.write(arr1[0]);
輸出結果將會是4,而不是1,這樣就可以修改成功
五,第三種建立數組對象特別說明
如果我想使用第三種方法對數組賦值一個整數,比如我想賦值一個 1在數組中,可以使用
var arr=new Array(1);
arr[0]=1;
或者使用
var arr=new Array();
arr[0]=1;
而不可以單獨使用 var arr=new Array(1);因為這種方法只會建立數組長度為 1 的數組對象,而不能賦值,但是字串是可以賦值成功的 var arr=new Array(“a”);
六,數組對象常用的方法
1,concat 方法
該方法返回一個新的數組,新的數組由該數組和其他元素組成,並不要求被合并的對象也是數組,可以是任意元素。
如下給的例子:
Codefunction arrayConcat() { var arr1 = new Array(1, 2, 3); var value = "javascript"; var arr2 = new Array("C#", "Java"); var arr3 = arr1.concat(value, arr2); document.write(arr3.length + "</br>"); document.write(arr3.toString() + "</br>"); }
輸出的結果是
6
1,2,3,javascript,C#,Java
2,join方法
該方法返回的是一個字串而不是一個數組,數組中的元素由指定的分隔字元分開.其使用方法為 arr.join(String),其中
String為可選項,如果不指定分隔字元,那麼數組元素將以逗號分隔。
如下例子
Code function arrayJoin() { var arr1 = new Array(1, 2, 3); var value = "-"; var arr2 = arr1.join(); document.write(arr2.length + "</br>"); document.write(arr2.toString() + "</br>"); }
輸出結果為:1-2-3
3,sort(fun) 方法
對數組元素進行排序,fun排序函數為可選項,不指定排序函數,將按照ASCII表進行升序排序,如果指定fun函數,那麼該函數必須返回 –1或者0或者1,-1代表第一個參數比第二個參數小,0 參數相等,1代表第一個參數比第二個參數大
Code function arraySort() { var arr = new Array(1, 3, 2, 0, 1, 4, 2); arr.sort(); document.write(arr.toString() + "</br>"); arr.sort(desc); document.writeln(arr); document.writeln("<br>"); arr.sort(asc); document.writeln(arr); } function desc(x, y) { if (x > y) return -1; if (x < y) return 1; if (x == y) return 0; } function asc(x, y) { if (x > y) return 1; if (x < y) return -1; if (x == y) return 0; }
4,reverse方法
該方法對給定的數組進行反轉。
上面的方法也是經常使用的,其他方法的使用大家可以參考JavaScript使用文檔或者可以到w3school查看
七,二維數組
用上面所給建立數組對象的方法,大家會發現只能建立以為數組,而在開發中經常會用到二維數組,比如jqgrid就會用到二維數組來展示資料,所以這時候我們就要使用JavaScript建立二維數組。思路很簡單,既然是數組,我們就建立一個數組,然後再將一個數組插入到第一個數組中的元素裡面。這樣就可以形成二維數組,下面給出代碼
Codevar arr = new Array();for (var i = 1; i <= 10; i++) { arr[i] = new Array(); for (var j = 0; j <= 10; j++) { aa[i][j] = i + j; }}
八,數組的屬性
1,length 經常使用,得到數組的長度
2,propertype 返回對象原型的引用,使用這個屬性我們可以對Array對象設定我們自己寫的方法,比如我想讓Array對象有我自己的列最大值的方法,可以使用
Codefunction array_max( )
{
var i, max = this[0];
for (i = 1; i < this.length; i++)
{
if (max < this[i]) max = this[i];
}
return max;
}
Array.prototype.max = array_max;
var arr = new Array(1, 2, 3, 4, 5, 6);
var value = x.max( );
對數組的就寫到這裡,剛開始寫部落格,裡面如果有不妥的地方請大家指定出來或者你有更好的見解,大家可以交流,謝謝.
javascript Array對象