發表者
討論內容
冷日 (冷日)
發表時間:2009/1/16 2:43
Webmaster
註冊日: 2008/2/19
來自:
發表數: 15771
[轉帖] Java Script 陣列 (Array)
[轉帖] Java Script 陣列(Array) 陣列是另一種定義變數的方法,它容許我們一次快速地定義多個變數。先看一下在JavaScript中,『標準』的定義變數的方法。假定我們要在JavaScript中定義兩個儲存姓名的變數,我們可以如此做: <script language="JavaScript"> var x="Alex"; var y="Ivy"; </script> 現在你有10個朋友,而你想寫一支JavaScript的程式來儲存他們的資料,用上述的方法,你必須如此做: <script> var x="Alex"; var y="Ivy"; var n="Tom"; var v="Mary"; var m="Nancy"; " " " </script> 若要儲存在這10個資料,你必須想10個不同的變數名稱來儲存這些名字。但使用了陣列,你就可以不必如此痛苦了。陣列只是另一個儲存變數的方法,沒什麼特別的。如果我們以陣列的方法來定義上一個例子,我們必須先了解陣列的語法: var arrayname=new Array(); //定義一個陣列物件 var arrayname=new Array(9); //定義一個陣列物件內含10個元素 var arrayname=new Array(1, 2, 3, 4, 5); //定義一個陣列物件內含5個元素, 起始值為數值1,2,3,4,5 var arrayname=new Array("A", "B"); //定義一個陣列物件內含2個元素, 起始值為字串"A", "B" 例如: var x=new Array(10); 如果要將姓名儲存在陣列中,我們要再加上下列的定義: x[0]="Sam"; x[1]="Bob"; x[2]="Joe"; x[3]="Peter"; x[4]="May"; " " " x[9]="George"; 在目前的階段,至少我們可以了解到使用陣列的第一個好處了,我們不必想10個變數名稱。往下我們還會介紹另一個使用陣列的好處:易於追蹤資料。 正如你所看到的,我們以[]內的不同數值來代表不同的資料。你可能已經注意到[]內的數值是由0開始的!!!記得這一點。如果你不願意由0開始呢?例如:你的編號是x[3], x[4].....x[11], x[12]。你當然可以如此定義,但你只能在陣列中儲存90個資料,x[10]....x[12]內存的是無意義的東東。 更大的好處是:我們可以很方便的依順序存取資料,例如:如果我們想知道第50個人的資料,我們可以如此做: <script> alert(x[49]); </script> 如果我們不用陣列,很難做到。 資料來源:『老師不在時』網頁設計教學網站
冷日 (冷日)
發表時間:2009/1/16 2:59
Webmaster
註冊日: 2008/2/19
來自:
發表數: 15771
[轉貼]JavaScript : Array 列陣
(script removed) Array列陣 約瑟 發表
Arrays(列陣)是 JavaScript 裡面最有用來建造資料庫的方式。在使用 Arrays 之前, 你一定要先了解 Array的計算方式。因為所有 var 的質都是由 0 算起的, 所以 Array 上 var 的數量一定是比Array最大的 index value 還大一。以下的例子會解釋比較容易。 STEP1:【做一個Array】 Arrays 是設定在 var(Variables) 裡面的。所以, 你在做 Array 之前, 你要先寫 var BigCities = new Array(10)。在這裡, 我們把 var 叫做 BigCities, 然後等於 new Array(10)。意思就是說, 我們把 Something 設為 "新" 的 Array, 而 Array 裡面只有到 10 而已。 可是到這裡我們只有先設一個 Array 的開頭設定而已, 我們現在要加入更多的資料進去。首先, 要是第一行, 我們先把var的質寫在前面變成: BigCities。然後在加入 [0] 在後面。然後在加一個 array的名字....我們叫他 Taipei 吧! BigCities[0] = "Taipei" 這樣就是一個 array 啦! 不過你之前 Array 的 index value 不是說 "十" 嗎? 所以我們就要寫十一列啦!就像這樣: (還記得從零開始吧!) BigCities[0] = "Taipei" BigCities[1] = "Tokyo" BigCities[2] = "NewYork" .... BigCities[10] = "LosAngeles" 嗯, Array作好了, 接下來就是要呼叫Array。我們通常都是用Eventhandler或是Method(方法)來呼叫function 的, 在此, 我們用alert()來呼叫Array。語法如下: alert("最大的城市是 " + BigCities[2] + ".") 注意到 + ? 它就是呼叫 Array 用的。大至上就是這樣啦! STEP2:【程式範例】 看一下以下程式: 打入右邊五個城市中其中一個在以下框框裡: (Taipei, Tokyo, New York, Los Angeles, Shanghai) 以上執行結果請 按這 ! STEP3:【程式說明】 以上程式是 "平行列陣" 的寫法。我們可以很清楚看到我列出兩排 Arrays, 一個是 BigCities, 一個是 Location。在第一個Array中, 我設的 index value 只有 4, 第二個我也是設 4。 這就是為什麼我叫這種Array , 平行列陣。 首先, 我們先列一個 var 叫做 selectedCity。我們可以看到它是連到以下的 's 裡面。所以也就是說, 我們在 裡面打的東西就等於 selectedCity 這個 var。 接下來我在列陣下面做一個Function, 用來呼叫Arrays用的。在這Function裡面, 我把 i 設定為 var 後面跟著的數字 (在此程式裡, var 為 BigCites 和 Location) 。我接著又設說只要 i 小於(<) BigCities這 Array 的長度程式就可以執行。 我們接著又設 if (BigCites[i] == selectedCity) 意指要是我們在 裡面打的要是等於BigCities 裡面其中一個, 就會有更進一步的指令。 這個Function 新的東西大概就醬。 以下的大家應該都很熟悉吧! 我們在這用 onClick 這個 eventhandler 來呼叫上面的Function。Array 大至上就是這樣。如果你還是有點不懂, 你可以在看此篇教學一遍, 或到討論區提出問題。 如果你懂的話, 請拿以下範例來做練習。用此單元的寫法來做:以下是四個行星的基本資料, 做一個網頁, 讓訪客可以輸入行星名稱, 按下按鈕會出現以下的資料。你可以用 alert()來做。
行星名稱 離太陽距離 直徑 水星 36,000,000 英哩 7,700 英哩 金星 67,000,000 英哩 3,100 英哩 火星 141,000,000 英哩 4,200 英哩 地球 93,000,000 英哩 7,920 英哩
試試看吧! 要答案的可以寄信給我喔! joseph_1001@yahoo.com 最後更新日期: 7/14/2001 6:28:40 AM
原文出處: (script removed) Array列陣 -酷必網
冷日 (冷日)
發表時間:2009/1/16 3:07
Webmaster
註冊日: 2008/2/19
來自:
發表數: 15771
[轉貼]JavaScript 多維陣列
/* 本文收錄在「JavaScript 網頁特效應用開發手冊」第二版。 */
[ JavaScript 多維陣列 ]
有時候在使用陣列,我們會希望可以使用多維陣列,但是在 JavaScript 裡,因為陣列以物件的方式宣告,所以無法像 C 一樣,用 int array2d[SIZE][SIZE]; 的方式宣告二維陣列。
可是我們可以改採用 C 的宣告動態陣列方法來宣告 JavaScript 的多維陣列(或動態陣列),假設我們要宣告一個二維的陣列,其大小為 5 x 5,那麼其宣告方式如下: var a = new Array(SIZE); for(var i = 0; i< SIZE; i++) a[i] = new Array(SIZE); 這樣子就會宣告一個陣列,而且其大小為 5 x 5。我們再看一個更詳細範例,它會把陣列元素所在位置的值相加,例如 a[i][j] 的內容值為是 i + j,這是陣列元素的斜對角線編號,從右上看到左下,在相同斜對角線的元素編號均相同,這可以用來判定兩個元素是否在相同的斜對角線上。最後,我們再把陣列內容輸出,並且比較其內容。
網頁 JavaScript 原始碼: /** 宣告大小為 5 x 5 的二維陣列 **/ var SIZE = 5; var a = new Array(SIZE); for(var i = 0; i< SIZE; i++) a[i] = new Array(SIZE); /** 計算二維陣列的斜對角線編號 **/ for(var i = 0; i< SIZE; i++) for(var j = 0; j< SIZE; j++) a[i][j] = i + j; /** 輸出二維陣列內容 **/ for(var i = 0; i< SIZE; i++) { for(var j = 0; j < SIZE; j++) document.write(a[i][j] + " "); document.write("<BR>"); }
用瀏覽器觀看的結果: 0 1 2 3 4 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8
這個範例實用性質不高,只是用來示範要如何宣告多維陣列,但是多維陣列的技巧可以用在很多地方,像是儲存固定格式的資料,例如要儲存一整個班的學生基本資料,學生的基本資料可能會有「姓名」、「學號」、「班別」,這樣我們可以宣告一個二維陣列,其大小為 學生人數 x 3,以第 n 個學生而言, student[n][0] 儲存他的姓名, student[n][1] 儲存學號,student[n][2] 儲存班別。還多很多例子可以舉,但在此就不詳述了。
原文出處:[ JavaScript 多維陣列 ]