1. 程式人生 > 其它 >陣列相關知識

陣列相關知識

用中括號 [] 通過指定陣列名以及索引號碼,你可以訪問某個特定的元素。

   陣列a賦值給陣列b:   陣列的長度

陣列是一組資料,length屬性表示這個陣列中的內容的個數。簡稱陣列的長度。 該長度是可讀可寫的屬性。 當設定屬性的時候,表示要修改該陣列的長度。陣列的長度會發生變化。 當讀取時,會實時返回陣列的當時的長度。

關聯陣列基本概念: “關聯陣列”是一種具有特殊索引方式的陣列。不僅可以通過整數來索引它,還可以使用字串或者其他型別的值(除了NULL)來索引它。關聯陣列的索引值是任意的標量,這些標量稱為Keys,可以在以後用於檢索陣列中的數值。關聯陣列的元素沒有特定的順序。

如何定義關聯陣列? var defs = []; defs[key] = value; //key 和 value 需要分別賦予不同的值。

陣列的遍歷

第一種:普通for迴圈

  最簡單的一種,也是使用頻率最高的一種,雖然效能不弱,但仍有優化空間   第二種:優化版for迴圈

使用臨時變數,將長度快取起來,避免重複獲取陣列長度,當陣列較大時優化效果才會比較明顯。

這種方法基本上是所有迴圈遍歷方法中效能最高的一種

  第三種:弱化版for迴圈

這種方法其實嚴格上也屬於for迴圈,只不過是沒有使用length判斷,而使用變數本身判斷

實際上,這種方法的效能要遠遠小於普通for迴圈

第四種:foreach迴圈 陣列自帶的foreach迴圈,使用頻率較高,實際上效能比普通for迴圈弱   第五種:foreach變種

由於foreach是Array型自帶的,對於一些非這種型別的,無法直接使用(如NodeList),所以才有了這個變種,使用這個變種可以讓類似的陣列擁有foreach功能。

實際效能要比普通foreach弱

第六種:forin迴圈 in 中的迴圈變數代表的是下標(key) 這個迴圈很多人愛用,但實際上,經分析測試,在眾多的迴圈遍歷方式中它的效率是最低的   第七種:map遍歷 這種方式也是用的比較廣泛的,雖然用起來比較優雅,但實際效率還比不上foreach   第八種:for of遍歷(需要ES6支援) 這種方式是es6裡面用到的,效能要好於forin,但仍然比不上普通for迴圈  

二維陣列的表示   myarray[][]

二維陣列的定義