【JS中的數組】
一、數組的基本概念?
數組是在內存空間中連續存儲的一組有序數據的集合
元素在數組中的順序,稱爲下標。可使用下標訪問數組的每一個元素
二、如何聲明一個數組
① 使用字面量聲明:var arr=[];
在JS中,同一數組能夠存儲各類數據類型。
例如:var arr=[1,"2",true,4,{}];
② 使用new關鍵字明,var arr= new Array(參數);
>>>參數能夠是:
a.省略,表示建立一個空數組
b.參數爲一個整數,表示聲明一個length爲指定長度的數組。
可是這個length能夠隨時可變,可追加。
c.參數爲,分隔的多個數值表示數組的多個值。
new array(1,2,3)==[1,2,3]
三、數組中元素的讀寫/增刪
① 讀寫:經過下標訪問元素。下標從0開始。arr[1]="haha";
② 增刪:
a.使用delete,關鍵字刪除數組的某一個值,刪除以後,數組的長度不變,對應的位置變爲Undefined
eg:delete arr[1];
b.arr.pop()刪除數組的最後一個值。至關於arr.length -= 1;
c.arr.shift();刪除數組的第一個值;
d.arr.unshift(值):在數組的第0個位置新增一個值;
e.arr.push():在數組的最後一個位置新增一個值
f.直接訪問數組沒達到的下標,能夠動態追加。
arr[100]=1;中間若是有空餘下標,將存入Undefined.
四、數組中的其餘方法
① join("分隔符號"):將數組用指定分隔符連接爲字符串。當參數爲空時,默認用逗號分隔;
② concat():【原數組不會被改變】,將數組將兩個或多個數組的值連接爲新數組;
concat連接時,若是有二維數組則之多能拆一層中括號
[1,2].concat([3,4],[5,6])->[1,2,3,4,5,6]
[1,2].concat([3,4,[5,6]])->[1,2,3,4,[5,6]]
③ push:數組最後增長一個,unshift:數組開頭增長一個 --返回新數組的長度
pop():數組最後刪除一個, shift():數組開頭刪除一個 --返回被刪除的值
【上述方法均會改變原數組】
④ reverse():【原數組被改變】將數組翻轉,倒序輸出
⑤ slice(begin,end):【原數組不會被改變】,截取數組中的某一部分,並 返回截取的新數組
>>>傳入一個參數,表示開始區間,默認將截到數組最後;
>>>傳入兩個參數,表示開始和結束的下標,左閉右開區間(包含begin,不含end)
>>>兩個參數能夠爲負數,表示從右邊開始數,最後一個值爲-1
⑥ sort():【原數組被改變】,將數組進行升序排列
>>>默認狀況下,會按照每一個元素首字母的Ascii碼值進行排列;
[3,1,5,12].sort()->[1,12,3,5]
>>>能夠傳入一個比較函數,手動指定排序的函數算法;
函數將默認接收兩個值a,b 若是函數返回值>0,則證實a>b;
arr.sort(fucntion(a,b){
return a-b;//升序排列
return b-a;//降序排列
})
⑦ indexOf(value,index):返回數組中第一個value值所在的下標,若是沒有找到,返回-1
lastIndexOf(value,index):返回數組中最後一個value所在的下標,若是沒有找到,返回-1
>>>若是沒有指定index,則表示全數組查找value
>>>若是指定了index,則表示從index開始,日後查找value
⑧ arr.forEach():專門用於循環遍歷數組,接收一個回調函數,回調函數接收兩個參數,第一個參數
爲數組的每一項的值,第二個參數爲下標(IE8以前不支持此函數)
arr.forEach(function(item,index){
console.log(item);
})
⑨ map():數組映射。使用方式與forEach相同,不一樣的是map能夠有return返回值,表示將原數組的
每一個值進行操做後返回給一個新數組(IE8以前不支持此函數)
arr.map(function(item,index){
console.log(item);
return item-1;
})
五、二維數組與稀疏數組(瞭解)
① 二維數組: 數組中的值,依然是一個數組形式。
eg:arr=[[1,2,3][4,5,6]];//至關於兩行三列
讀取二維數組:arr[行號][列號]
② 稀疏數組:數組中的索引是不連續的。(length要比數組中實際的元素個數大)
六、基本數據類型和引用數據類型
① 基本數據類型:賦值時,是將原變量中的值,賦值給另外一個變量。賦值完成後,兩個變量相互獨立,
修改其中一個的值,另外一個不會變化。
② 引用數據類型:賦值時,時將原變量在內存中的地址,賦值給另外一個變量。賦值完成後,兩個變量中存儲的
是同一個內存地址,訪問的是同一份數據,其中一個改變另外一個也會發生變化。
③ 數值型,字符串,布爾型等變量屬於基本數據類型,
而數組,對象屬於引用數據類型;算法