1. JavaScript數組簡介程序員
① 爲何須要數組數組
數組能夠很方便的用來管理一組數據。例如:咱們須要變量來存儲一個星期裏面的每一天。函數
② 如何建立數組spa
在JavaScript裏面,建立數組有2種:操作系統
1)經過對象來建立數組3d
目前由於沒有講解對象,做爲了解便可對象
2)經過特殊符號來建立數組blog
③ 如何給數組賦值排序
分爲兩種:1)先申明,再賦值;2)申明和賦值一塊兒索引
1)先申明,再賦值
從上面咱們已經能夠看到,JavaScript的數組能夠動態的增長長度。
2)申明和賦值一塊兒
④ JavaScript的數組能夠放入任意數據類型
⑤ 訪問數組裏面的數據
當咱們要遍歷數組的時候,和C語言同樣,使用循環
2. JavaScript數組進階(重點)
① 數組在內存中存在的形式
和C語言同樣,JavaScript數組的名字仍然表明數組的首地址。
地址是存儲在內存裏面棧區,具體的數值是存儲在堆區
棧區:由編譯器自動分配和釋放,通常用來存儲函數的參數值,局部變量等。
堆區:通常由程序員手動分配和釋放,若是程序員不釋放,那麼程序結束的時候由操做系統進行回收。
全局區/靜態區:全局變量和靜態變量通常就是放在這個區域。全局區裏面的全局變量由系統進行回收。
文字常量區:常量字符串就是放置於文字常量區。程序結束後由系統來進行釋放。
程序代碼區:存放函數體的二進制代碼。
② JS數組的動態增加
1)JavaScript數組能夠存聽任意類型的數據
2)訪問數組中元素必須經過索引,可是當你訪問一個不存在的索引時,不會報錯,而是返回一個undefined
3)若是試圖賦值給一個不存在的索引值,也不會報錯,而是自動擴展數組的長度。
結論:JavaScript的數組能夠動態的增加
3. JavaScript二維數組
① 二維數組的建立
JavaScript自己是不支持多維數組的,可是,因爲JavaScript數組裏面能夠聽任意類型的數據,因此咱們能夠模擬出二維數組
c[0][2]打印輸出的值會是Lucy,首先0這個數會肯定數組a,1這個數就確認數組a裏面的第幾個。
申明二維數組還有一種方法:
② 二維數組的遍歷
遍歷二維數組須要使用雙層for循環
課堂練習1:矩形對角線之和
要求:用戶輸入矩形的寬度,而後生成矩形
課堂練習2:二維數組的轉置
<script>
// [8,-1,9,3]
// [7,12,-5,6]
// [6,4,2,99]
//原數組
var arr1 = [[8,-1,9,3],[7,12,-5,6],[6,4,2,99]];
var arr2 = [];
//肯定新數組有多少行——即撐開行
for(var i=0;i<arr1[0].length;i++){
arr2[i] = [];
}
//動態添加數據 遍歷原數組
for(var i=0;i<arr1.length;i++){
for(var j=0;j<arr1[i].length;j++){
arr2[j][i] = arr1[i][j];
}
}
//打印新數組
for(var i=0;i<arr2.length;i++){
for(var j=0;j<arr2[i].length;j++){
document.write(arr2[i][j]);
}
document.write("<br />");
}
</script>
4. 數組排序
數組排序的方法不少,這裏主要介紹一下冒泡和選擇排序
1)冒泡
所謂冒泡,就是兩個相鄰的數字不停的比較。冒完一次泡,就會有一個最大的或者最小的數字會移動到最後,再冒一次泡,倒數第二大或者倒數第二小的數又會移動到倒數第二位。
2)選擇排序
選擇排序的核心思想就是拿一個數和數組裏面的全部的數進行比較。直到該數在該數組中的正確位置
5. 數組相關屬性和方法
1)length屬性
獲取到數組的長度
語法:數組名.length
2)split():用於把一個字符串分割成字符串數組
split()裏面填寫"分割字符",分割字符不會被計入到數組
3)反轉數組
reverse():將一個數組裏面的元素所有反轉過來