?? 9-8.cfm.htm
字號:
<html>
<head>
<title>存儲大量數量(數組對象)</title>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<meta NAME="GENERATOR" CONTENT="Microsoft FrontPage 3.0">
</head>
<body>
<font FACE="宋體" SIZE="5"><b>
<p ALIGN="JUSTIFY">存儲大量數量(數組對象)</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">當你要存儲大量相關的數據時,你可能會用到數組。你可以把任何類型的數據的集合存儲在一個數組中,你甚至可以建立一個對象數組。</p>
<p ALIGN="JUSTIFY">在閱讀本節之后,你應當不會感到驚奇數組在JScript中也是個對象。你可以象任何其他類型的對象一樣用new語句來建立一個數組對象。下面是個例子:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(10);</p>
<p ALIGN="JUSTIFY">myarray[0]=“Running Shoes”;</p>
<p ALIGN="JUSTIFY">myarray[2]=“Fishing Rod”;</p>
<p ALIGN="JUSTIFY">myarray[9]=“Sailing Boat”;</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=myarray[9]%></p>
<p ALIGN="JUSTIFY">在此例中,建立了一個含10個元素的名為myarray的數組。JScript中的所有數組元素編號都是0開始的,因此在這種情況下,第一個元素是0最后一個是9。</p>
<p ALIGN="JUSTIFY">緊接著建立數組語句后的三條語句為數組中不同的元素賦值,第一條語句為第一個數組元素賦值為“Running
Shoes”。</p>
<p ALIGN="JUSTIFY">你可以使用數組元素的索引號來獲得數組的值,這個腳本中的最后一條語句輸出數組中第9個元素的值,文本Sailing
Boat被顯示在瀏覽器口上。</p>
<p ALIGN="JUSTIFY">你也可以在創建數組時為其賦值,要實現這一點只需用逗號分隔各個元素的值就可以了,象下面所示:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(“Running Shoes”,“Fishing Rod”,“Sailing Boat”);</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=myarray[2]%></p>
<p ALIGN="JUSTIFY">這個腳本創建的數組與上例中的那個完全一樣,然而這個數組的元素是連續排列的。例如,要取得第三個元素的值,你必須用它的索引號2。</p>
<p ALIGN="JUSTIFY">存儲在數組中的值不要求是同一類型的。例如,你可以在同一數組中存儲字符串和數字。象下面所示:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(“Andrew Jones”,7,884,“John Pyrovolakis”);</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY">在此例中,建立的數組對象中存儲了兩個字符串和兩個數字,這不會產生錯誤。你可以用通常的方法來引用某一個數組元素。</p>
</font><font FACE="宋體"><b>
<p ALIGN="JUSTIFY">改變數組的大小</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">建立了數組對象以后,你可以使用它的length屬性來決定它的大小。length屬性的值指明了數組中元素的個數。下面是個例子:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(“Running Shoes”,“Fishing Rod”,“Sailing Boat”);</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=myarray.length%></p>
<p ALIGN="JUSTIFY">當執行這個腳本時,返回值是3。</p>
<p ALIGN="JUSTIFY">你可以改變一個數組對象的length屬性。你可以通過為length屬性指定一個不同的整數值來使數組變大或是變小。你可用下面的方法來改變數組的大小:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(10);</p>
<p ALIGN="JUSTIFY">myarray.length=5; //makes array smaller</p>
<p ALIGN="JUSTIFY">myarray.length=20; //makes array larger</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY">如果你將一個數組變大,新元素的值是不確定的。如果你將一個數組變小,失去的數組元素將永遠失去了。</p>
</font><font FACE="宋體"><b>
<p ALIGN="JUSTIFY">多維數組</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">使用JScript 你不能建立多維數組。JScript
中的所有數組對象都是一維的,有時這是很不方便的,有時你需要創建多維數組。在JScript中怎樣實現這一點呢?</p>
<p ALIGN="JUSTIFY">假設你要建立一個數組來存儲用戶名及他們的密碼,這是一個應用二維數組的很好例子。你需要對兩種數據都能索引,每個參觀你網點的用戶都有一個用戶名和密碼。</p>
<p ALIGN="JUSTIFY">很幸運,你可以建立一個數組的數組,一個數組對象的元素值可以是另一個數組對象。通過建立數組的數組,在效果上你就建立了一個多維數組。下面的例子說明了如何去做:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(10);</p>
<p ALIGN="JUSTIFY">myarray[0]=new Array(1);</p>
<p ALIGN="JUSTIFY">myarray[1]=new Array(1);</p>
<p ALIGN="JUSTIFY">myarray[0][0]=“Andrew Jones”;</p>
<p ALIGN="JUSTIFY">myarray[0][1]=“Dodgy”;</p>
<p ALIGN="JUSTIFY">myarray[1][0]=“John Pyrovolakis”;</p>
<p ALIGN="JUSTIFY">myarray[1][1]=“Godel”;</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY">在此例中建立了一個簡單的數組的數組,數組對象Myarray首先被建立了,然后它的兩個元素被賦于新的數組對象,一旦這個通過多個一維數組對象建立的二維數組創建以后,你就可以象對待二維數組一樣來對待這它。在此例中,這個數組存貯了兩個用戶的名字和他們的密碼。</p>
</font><font FACE="宋體"><b>
<p ALIGN="JUSTIFY">數組方法</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">JScript數組對象有三個方法。你可以使用這些方法來處理數組中元素的位置以及將數組中多個元素組合成單個字符串。下面的例子說明了怎樣使用reverse()方法:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(2);</p>
<p ALIGN="JUSTIFY">myarray[0]=“I am the first element”;</p>
<p ALIGN="JUSTIFY">myarray[1]=“I am the second element”;</p>
<p ALIGN="JUSTIFY">myarray.reverse()</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=myarray[0]%></p>
<p ALIGN="JUSTIFY"><BR></p>
<p ALIGN="JUSTIFY"><%=myarray[1]%></p>
<p ALIGN="JUSTIFY">在此例中,建立了一個具有兩個元素的數組。每個元素都被賦于字符串值。然后數組元素通過reverse()方法被顛倒了。reverse()方法顛倒數組元素的索引次序。這個腳本的輸出如下所示:</p>
<p ALIGN="JUSTIFY">I am the second element</p>
<p ALIGN="JUSTIFY">I am the first element</p>
<p ALIGN="JUSTIFY">如果你想把數組中所有元素合并成單個字符串,你可以使用join()方法,這個方法不需要任何參數,它合并所有的數組元素,每個元素之間用逗號分隔開,下面是個例子:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(“John”,“Paul”,“George”,“Ringo”)</p>
<p ALIGN="JUSTIFY">mystring=myarray.join()</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=mystring%></p>
<p ALIGN="JUSTIFY">當執行這個腳本時,變量mystring的值是“John,Paul,George,Ringo”,你也可以用分隔符來代替逗號。只需將你想使用的分隔符傳給join()方法。象下面所示:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(“John”,“Paul”,“George”,“Ringo”)</p>
<p ALIGN="JUSTIFY">mystring=myarray.join(“*”)</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><%=mystring%></p>
<p ALIGN="JUSTIFY">當運行這個新的腳本時,變量mystring被賦于“John*Paul*George*Ringo”,你需要的分隔符可以不是單個字符。你可以使用任意長度的字符串。</p>
<p ALIGN="JUSTIFY">數組對象的最后一個方法可能是這三者中最有用的。使用sort()方法,你可以排序數組中的元素,這個方法不需要任何參數,它按照字母序將數組中的元素排序,來看下面的例子:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">myarray=new Array(“John”,“Paul”,“George”,“Ringo”)</p>
<p ALIGN="JUSTIFY">myarray=sort()</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><BR> <%=myarray[0]%></p>
<p ALIGN="JUSTIFY"><BR> <%=myarray[1]%></p>
<p ALIGN="JUSTIFY"><BR> <%=myarray[2]%></p>
<p ALIGN="JUSTIFY"><BR> <%=myarray[3]%></p>
<p ALIGN="JUSTIFY">當執行這個腳本時,下面的值將會被輸出:</p>
<p ALIGN="JUSTIFY">George</p>
<p ALIGN="JUSTIFY">John</p>
<p ALIGN="JUSTIFY">Paul</p>
<p ALIGN="JUSTIFY">Ringo</p>
<p ALIGN="JUSTIFY">你也可以使用sort方法來完成較復雜的排序工作,要做到這一點,你必須向這個方法傳遞一個指明按照何種規則進行排序的函數。如下面的例子:</p>
<p ALIGN="JUSTIFY"><%</p>
<p ALIGN="JUSTIFY">function mysort(myvar1,myvar2)</p>
<p ALIGN="JUSTIFY">{</p>
<p ALIGN="JUSTIFY">var choice=Math.round(Math.random());</p>
<p ALIGN="JUSTIFY">if (choice==1) {return </font><font SIZE="3">–</font><font
FACE="宋體" SIZE="3">1} else return 1;</p>
<p ALIGN="JUSTIFY">}</p>
<p ALIGN="JUSTIFY">myarray=new Array(“John”,“Paul”,“George”,“Ringo”)</p>
<p ALIGN="JUSTIFY">myarray.sort(mysort)</p>
<p ALIGN="JUSTIFY">%></p>
<p ALIGN="JUSTIFY"><BR> <%=myarray[0]%></p>
<p ALIGN="JUSTIFY"><BR> <%=myarray[1]%></p>
<p ALIGN="JUSTIFY"><BR> <%=myarray[2]%></p>
<p ALIGN="JUSTIFY"><BR> <%=myarray[3]%></p>
<p ALIGN="JUSTIFY">在此例中,數組元素隨機地排序,每次執行腳本時,都以不同的順序輸出名字。函數mysort()完成實際的排序工作,這個函數被傳給了myarray數組對象的sort()方法。</p>
<p ALIGN="JUSTIFY">任何你傳給sort()方法的排序函數必須接受兩個參數,這兩個參數是待比較的兩個數組元素,如果函數返回一個負數,第一個參數表示的元素就會排在第二個參數表示的元素之前;如果函數返回一個正值,第二個元素就排在第一個之前。最后,如果函數返回零,這兩個元素的次序不變。</p>
</font>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -