1.數(shù)組的概念
用于保存一組數(shù)據(jù)的集合。
數(shù)組的定義格式: 中括號或者new定義,里面每一個元素結束的時候使用一個逗號隔開,最后一個元素可以不使用逗號結尾。
2.數(shù)組的申明
2.1 var a = [];
2.2 var a = new Array();
3. instanceof 查看某個變量是否是某個數(shù)據(jù)類型的實例。
4.數(shù)組保存數(shù)據(jù)的格式
嚴格意義上來說數(shù)組可以保存任意格式的數(shù)據(jù)。
如果數(shù)組中保存的還是一個數(shù)組,那么這個數(shù)組叫做多維數(shù)組。
var a =[
[[1,2,3],2,3],
[4,3,2],
[8,2,7]
];
5.數(shù)組的鍵
數(shù)組的每一個元素都是由鍵與值組成。
[1,2,3,4,5];
[
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
]
['a','b','c']
[
0 => 'a',
1 => 'b',
2 => 'c',
]
數(shù)組的鍵是從0 開始的,是一個遞增的數(shù)值隊列。
Object.keys() 獲取某一個數(shù)組所有的鍵。返回的也是一個數(shù)組,這個數(shù)組是由原數(shù)組的鍵組成的。當然這個數(shù)組也有自己的鍵。
數(shù)組所有的鍵都是字符串格式的,只是看起來有點像數(shù)字格式,這個是和對象是一樣的。對象所有的鍵也都是字符串格式的。
在獲取數(shù)組的某一個值的時候,鍵名首先會轉(zhuǎn)化為整形,然后整形轉(zhuǎn)化字符串。如果是帶有小數(shù)點后面數(shù)字的小數(shù)就不行了。
6.數(shù)組的訪問形式
oDiv.style.display
oDiv['style']['display']
這個是對象的訪問形式,不是數(shù)組的。
數(shù)組只能使用【】的形式進行訪問。
arr[數(shù)字]
arr[變量]
數(shù)組也支持存放不是數(shù)字鍵的元素,但是這個元素是按照對象的格式存放的,不計算在數(shù)組的元素個數(shù)中??梢允褂脤ο蟮姆绞将@取,也可以使用數(shù)組的方式獲取。
arr['name'] = 'zhangsan';
7. delete 刪除一個對象的屬性。
也能夠刪除數(shù)組的元素,但是刪除之后元素的值刪除了,但是數(shù)組的長度不會發(fā)生變化。也就是length不會改變。
8. length
數(shù)組中最重要的一個屬性,表示數(shù)組中元素的個數(shù)。這個length是動態(tài)變化的。數(shù)組元素增加的時候,length會自動變大,元素減少的時候,length會自動的減少。如果手動設置length,那么數(shù)組也會發(fā)生變化。
數(shù)組的鍵是使用32為2進制來保存的,所有最大值是2^32-1;
也就是數(shù)組最多只能保存2^32-1個值。
數(shù)組的元素可以是不連續(xù)的,但是length總是比最大的鍵名大1.
沒有保存數(shù)據(jù)的位置是空位。
9.in運算符
判斷某一個{鍵}是不是在數(shù)組中,返回的是一個bool值。
也能判斷對象是否具有某個屬性。
10.for... in
遍歷數(shù)組。類似于while循環(huán)以及for循環(huán)。但是比這倆智能一點,會跳過空位。
for(var j in arr){
console.log(arr[j]);
}
for..in 遍歷會將數(shù)組中不標準的鍵名和值也會遍歷出來,而for循環(huán)以及while不會。
11.forEach 遍歷數(shù)組
arr.forEach(function(){
});
12.數(shù)組中的空位
數(shù)組中間的空位是計算在length里面的,但是里面沒有值,獲取的時候是undefined。
var arr = [1,2,,,,,4];
數(shù)組結尾的空位是不生效的,所以可以省略最后的一個逗號。
undefined 與空位的區(qū)別:
獲取內(nèi)容的時候都是undefined。
真實空位在for。。in循環(huán)遍歷的時候會自動跳過,而真實存儲undefined的位置不會跳過。
13. 類數(shù)組對象
類似于數(shù)組的對象 。 具有l(wèi)ength屬性,這個屬性表示的變量內(nèi)部的元素的個數(shù)。但是這個length不會動態(tài)變化。
arguments: 參數(shù)對象
字符串
絕多數(shù)的DOM集合。oDiv
14.數(shù)組函數(shù)
壓棧函數(shù)
push 推 向數(shù)組中添加一個元素,添加到數(shù)組的最后。
pop 彈出 從數(shù)組中彈出一個元素,從最后刪除一個元素。
unshift: 向數(shù)組中添加一個元素,添加到數(shù)組開頭
shift: 從數(shù)組中刪除一個元素,從數(shù)組的開頭刪除
splice: 從數(shù)組中刪除元素。
splice(start,num);從start位置開始,刪除num個元素。
splice(start,num,....);從start位置開始,刪除num個元素。然后將后面的所有的參數(shù)作為元素添加帶這個刪除元素的位置。如果num是0,那么在start的位置開始插入元素。
slice:數(shù)組截取,不會改變元素的數(shù)組,只是將截取出來的數(shù)據(jù)作為返回值單獨返回。
slice(start,end-1)返回的是start開始,到end-1的數(shù)組元素的集合,返回的也是一個數(shù)組。
join:將數(shù)組轉(zhuǎn)化為字符串,默認是使用逗號連接。
join(連接符):將數(shù)組元素使用連接符連接起來組成字符串。
concat:合并數(shù)組。
數(shù)組1.concat(數(shù)組2); 返回的是一個合并后的數(shù)組。并不會改變原來的數(shù)組。
reverse:數(shù)組翻轉(zhuǎn);會改變原來的數(shù)組。
arr.reverse();
15.冒泡排序
for(){
for(){
}
}