您好,登錄后才能下訂單哦!
本篇內容主要講解“Javascript中的數組是什么意思”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Javascript中的數組是什么意思”吧!
在Javascript中,數組是指有序數據的集合,數組中的每個成員被稱為元素,每個元素的名稱(鍵)被稱為數組下標(Index);數組的長度是彈性的、可讀寫的。
本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
JavaScript 數組(Array)是有序數據的集合,數組中的每個成員被稱為元素(Element),每個元素的名稱(鍵)被稱為數組下標(Index)。數組的長度是彈性的、可讀寫的。
Array 數組對象是 JS 的內置對象,它可以用一個變量來存儲一系列相同或不同類型的值,其中存儲的每個值稱為數組元素。
JS數組的創建
使用 Array 對象存儲數據之前必須先創建 Array 對象。創建 Array 對象有多種方式,下面列出兩種常用方式。
方式一:var 數組對象名 = [元素1,元素2,…,元素n];
方式二:var 數組對象名 = new Array(元素1,元素2,…,元素n);
方式一是一種較簡潔的數組創建方法,而方式二則是一種較正式的數組創建方法。這兩種創建方式都返回新創建并被初始化了的數組對象,它們都使用參數指定的值初始化數組,元素個數(也叫數組長度)為參數的個數。這兩種方式效果在一般情況下是一樣的,但由于方式一更簡潔,因此在實際應用中最常用。
數組創建示例:
var hobbies1 = ["旅游","運動","音樂"]; var hobbies2 = new Array("旅游","運動","音樂");
上面示例代碼創建了兩個包含 3 個元素的數組對象,它們是完全等效的,但第一行代碼更簡潔。
需要注意的是:上述兩種創建數組的方式,一般情況下是完全等效的,除了只有一個數值類型參數的情況。因為此時,使用第一種創建方式時,表示創建的是一個只包含一個元素的數組,該元素的值等于數值參數;使用第二種創建方式,則表示創建了一個長度等于數值類型參數的數組,例如:
var arr = [3]; //創建了一個只有一個元素的數組,元素值為3 var arr = new Array(3);//創建了一個有3個元素的數組,3個元素值均為undefined
JS數組元素的引用
數組中存儲的每個元素都有一個位置索引(也叫下標),數組下標從 0 開始,到數組長度 -1 結束,即第一個元素的下標為 0,最后一個元素的下標為數組長度 -1。
引用數組元素時可以通過數組名和下標來實現,引用格式如下:
數組名[元素下標]
例如:一個包含 3 個元素的名為 arr 的數組的 3 個元素,可分別通過:arr[0]、arr[1] 和 arr[2] 來引用。
JS數組的訪問
訪問數組有兩種方式:
一是直接訪問數組名,此時將返回數組中存儲的所有元素值。例如,alert(hobbies1),該語句執行后將在警告對話框中輸出上面創建的 hobbies1 數組中存儲的所有元素值:旅游,運動,音樂;
二是使用數組加下標訪問,此時將返回數組下標對應的數組元素值。例如:alert(hobbies1[1]),該語句執行后將在警告對話框中輸出“運動”。
JS遍歷數組(for in和forEach循環)
JS 遍歷數組(循環數組)的方式有多種,可以使用傳統的 for 循環,也可以使用升級版的 for in 循環,還可以使用 Array 類型的 forEach() 方法;如果希望遍歷對象的鍵名,還可以使用 keys() 方法。
1、使用 for 和 for in遍歷數組
for 和 for/in 語句都可以迭代數組。for 語句需要配合 length 屬性和數組下標來實現,執行效率沒有 for/in 語句高。另外,for/in 語句會跳過空元素。
對于超長數組來說,建議使用 for/in 語句進行迭代。
示例1
下面示例使用 for 語句迭代數組,過濾出所有數字元素。
var a = [1, 2, ,,,,,,true,,,,,,, "a",,,,,,,,,,,,,,,4,,,,,56,,,,,,"b"]; //定義數組 var b = [], num = 0; for (var i = 0; i < a.length; i ++) { //遍歷數組 if (typeof a[i] == "number") //如果為數字,則返回該元素的值 b.push(a[i]); num ++; //計數器 } console.log(num); //返回42,說明循環了42次 console.log(b); //返回[1,2,4,56]
示例2
下面代碼使用 for/in 語句迭代示例 1 中的數組 a。在 for/in 循環結構中,變量 i 表示數組的下標,而 a[i] 為可以讀取指定下標的元素值。
var b = [], num = 0; for (var i in a) { //遍歷數組 if(typeof a[i] == "number") //如果為數字,則返回該元素的值 b.push(a[i]); num ++; //計數器 } console.log(num); //返回7,說明循環了7次 console.log(b); //返回[1,2,4,56]
通過計時器可以看到,for/in 語句迭代數組,僅循環了 7 次,而 for 語句循環了 42 次。
2、使用 forEach 遍歷數組
Array 類型為每個數組定義了 forEach() 原型方法,使用該方法可以為數組執行迭代操作。具體說明如下:
array.forEach(callbackfn[, thisArg]);
參數說明如下:
array:一個數組對象。
callbackfn:必需參數,最多可以接收三個參數的函數。forEach 將為數組中的每個元素調用 callbackfn 函數一次。
thisArg:可選參數,callbackfn 函數中的 this 可引用的對象。如果省略 thisArg,則 this 的值為 undefined。
對于數組中出現的每個元素,forEach 方法都會調用 callbackfn 函數一次,采用升序索引順序,但不會為數組中空元素調用回調函數。
除了數組對象之外,forEach 方法還可以用于有 length 屬性且具有已按數字編制索引的屬性名的任何對象,如關聯數組對象、Arguments 等。
回調函數語法如下:
funtion callbackfn(value, index, array);
最多可以使用三個參數來聲明回調函數。回調函數的參數說明如下。
value:數組元素的值。
index:數組元素的數字索引。
array:包含該元素的數組對象。
forEach 方法不直接修改原始數組,但回調函數可能會修改它。
示例
下面示例使用 forEach 迭代數組 a,然后把每個元素的值和下標索引輸出顯示,代碼如下:
function f(value,index,array) { console.log("a[" + index + "] = " + value); } var a = ['a', 'b', 'c']; a.forEach(f);
演示結果如下:
到此,相信大家對“Javascript中的數組是什么意思”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。