數組資料項目的串連與分割:
var mya=new Array();
mya[0]="aa";
mya[1]="bb";
mya[2]="cc";
mya[3]="dd";
function joinArray()...{
var myText=mya.join(",");
alert(myText);
}
function splitArray()...{
var mya2=myText.split(",");
alert(mya2[i]);
}
用array.concat()方法可以把兩個array對象串連為一個新的array對象。例如:
var array1=new Array(1,2,3);
var array2=new Array("a","b","c");
var array3=array1.concat(array2);
//result:array3 with values 1,2,3,"a","b","c"
var arrayText=myArray.join(",");
堆棧:
array.pop()
array.push(valueOrObject)
array.shift()
array.unshift(valueOrObject)
push()和pop()在數組的末端工作,shift()和unshift()工作在數組的前端。
當把一個值push()到一個數組中時,這個值被作為最後一個資料項目追加到數組中。
當使用array.pop()方法時,數組中的最後一項就會從堆棧中移出並作為傳回值返回,同時數組的長度減1。
當把一個值unshift()到一個數組中時,這個值被作為第一個資料項目插入到數組中。
當使用array.shift()方法時,數組中的第一項就會從堆棧中移出並作為傳回值返回,同時數組的長度減1。
array.reverse() --> 傳回值:和原數組順序相反的數組項
array.slice(startIndex[,endIndex]) --> 傳回值:數組
此方法需要一個參數,也就是提取的起始索引位置。如果不指定第二個參數,提取將一直進行到數組的結尾,
否則,只提取到第二個參數指定的位置,但不包括那個位置。
array.splice(startIndex,deleteCount[,item1[,item2[,...itemN]]]))
如果需要從數組中刪去一些項,使用array.splice()方法能簡化這一任務,否則還需要從原始數組的選擇項中組合一個新數組。
所需的兩個參數中第一個是基於0的索引整數,它指向當前數組中被刪除的第一項;
第二個參數也是一個整數,它說明了要從數組中刪除多少個連續項。刪除數組項影響了數組的長度,被刪除的項作為其自身的數組被splice()方法返回。
還可以使用splice()方法來替換數組項。從第三個參數開始是選擇性參數,它允許提供要插入數組的資料元素,這些資料元素要替換被刪除的資料項目。
被加入的資料項目可以是任何JavaScript資料類型,新資料項目的數量不一定必須等於被刪除的資料項目的數量。
實際上,通過將第二個參數指定為0,可以使用splice()向資料的任何位置插入一個或多個資料項目。
array.toLocaleString() --> 一般使用數組中的每一項使用逗號分開。
array.toString() --> 此方法的精確的字串轉化取決於特定的瀏覽器的實現方式。
一般使用相容器更強的舊方法array.toString()
array.sort([compareFunction]) --> 傳回值:以compareFunction演算法控制順序的數組項
排序改變了原始數組的排列順序!
預設調用排序時,是以字元的ASCII值為標準。
比較函數的傳回值:
<0 : 值b排在a後面
=0 : a和b的順序不改變
>0 : 值a排在b後面
例如:按數字順序排序
myArray=new Array(12,34,2,123)
function compare(a , b)...{
return a-b
}
myArray.sort(compare)
例如比較字串數組中的每一個資料項目的最後一個字元,按字母順序來排序
function compare(a , b)...{
//last character of array strings
var aComp=a.charAt(a.length - 1)
var bComp=b.charAt(b.length - 1)
if(aComp < bComp)...{return - 1}
if(aComp > bComp)...{return 1}
return 0
}
例如:如果一個數組中有這樣的對象,它們的屬性值定義了關於僱員的資訊,其中一個屬性是僱員的年齡,定義為字串類型。
用下面的比較函數並以對象的age屬性所對應的數值為基礎,就可以排序這個數組
function compare(a , b)...{
return parseInt(a.age)-parseInt(b.age)
}