JQuery中數(shù)組的創(chuàng)建與使用一,、創(chuàng)建數(shù)組的方式: 1.定義并賦值 var str = ['java', 'php', 'c++', 'c#', 'perl', 'vb', 'html', 'css']; 2.用{}定義后賦值: var array = {};//定義一個(gè)數(shù)組 array[0] = 'Tom'; array[1] = 'Male'; array[2] = '[email protected]'; 數(shù)組的下標(biāo)也可以這樣: array['name'] = 'Tom'; array['sex'] = 'Male'; array['mail'] = '[email protected]'; 3.使用new Array()定義: (1). var a = new Array(10); 定義長(zhǎng)度為10的數(shù)組,此時(shí)為a已經(jīng)開(kāi)辟了內(nèi)存空間,,用數(shù)組名稱加 [下標(biāo)] 來(lái)調(diào)用,。 (2). var a = new Array(); a[0] = 10; a[1] = 'Tom'; a[2] = 12.6;
定義一個(gè)可變數(shù)組,并進(jìn)行賦值,。數(shù)組的賦值還可以使用push()方法,,這樣可以避免使用下標(biāo)的麻煩: a.push(10); a.push('Tom'); a.push(12.6); (3). var a = new Array(1, 2, 3, 4, 5); var b = [1, 2, 3, 4, 5]; a 和 b 都是數(shù)組,只不過(guò)b用了隱性聲明,,創(chuàng)建了另一個(gè)實(shí)例,,此時(shí)如果用alert(a==b)將彈出false。 (4). 數(shù)組就是某類數(shù)據(jù)的集合,,數(shù)據(jù)類型可以是整型,、字符串、甚至是對(duì)象。 Javascript不支持多維數(shù)組,,但是因?yàn)閿?shù)組里面可以包含對(duì)象(數(shù)組也是一個(gè)對(duì)象),,所以數(shù)組可以通過(guò)相互嵌套實(shí)現(xiàn)類似多維數(shù)組的功能。
數(shù)組里面可以包含對(duì)象,,所以可以把數(shù)組里面的某個(gè)元素再聲明為數(shù)組,,例如 var a = new Array(); a[0] = new Array(); a[0][0] = 1; alert(a[0][0]); //彈出 1
聲明的時(shí)候賦值 var a = new Array([1,2,3], [4,5,6], [7,8,9]); var b = [[1,2,3], [4,5,6], [7,8,9]];
二、數(shù)組的操作:
1.通過(guò)數(shù)組[下標(biāo)]來(lái)讀寫數(shù)組的元素: 如:a[0] = 10; a[1] = 'Tom'; a[2] = 12.6;
下標(biāo)的范圍是 0 – (23(上標(biāo)2) -1),,當(dāng)下標(biāo)是負(fù)數(shù),、浮點(diǎn)甚至布爾值的時(shí)候,數(shù)組會(huì)自動(dòng)轉(zhuǎn)換為對(duì)象類型,。 如: var b = new Array(); b[2.2] = 'XXXXX'; alert(b[2.2]); //-> XXXXX
2.通過(guò)push(),pop()方法讀寫元素: (1).push 往數(shù)組后面添加數(shù)組,,并返回?cái)?shù)組新長(zhǎng)度 var a = ['aa','bb','cc']; document.write(a.push('dd')); // -> 4
(2).pop 刪除數(shù)組最后一個(gè)元素,并返回該元素 var a = ['aa','bb','cc']; document.write(a.pop()); // -> cc
3.數(shù)組的循環(huán): (1).for循環(huán): var a = [1,2,3,4,5,6]; for(var i =0; i alert(a[i]); }
(2).foreach循環(huán): var a = [1,2,3,4,5,6]; for(var e in a){ alert(e); } 還是依次彈出1至6,,for…in是歷遍對(duì)象(數(shù)組是特殊的對(duì)象)對(duì)象,,用在數(shù)組上,因?yàn)閿?shù)組沒(méi)有屬性名,,所以直接輸出值,,這結(jié)構(gòu)語(yǔ)句用在對(duì)象上,例如下面 var a = {x:1,y:2,z:3}; for(var e in a){ alert(e + ':' + a[e]); }
此時(shí)e取到的是屬性名,,即 x,、y、x,,而要取得值,,則采用 數(shù)組名[屬性],所以 a[e] 等同于 a[“x”],、a[“y”],、a[“z”]。
4.將數(shù)組轉(zhuǎn)換為字符串: (1).join('分隔符') 用指定間隔符連起來(lái),,把數(shù)組轉(zhuǎn)為字符串 例: var a = ['a','b','c','d','e','f','g']; alert(a.join(',')); // -> a,b,c,d,e,f,g 需要注意的是只轉(zhuǎn)換一維數(shù)組里面,,如果數(shù)組里面還有數(shù)組,將不是采用join指定的字符串接,,而是采用默認(rèn)的toString(),。 (2).toString() 把數(shù)組轉(zhuǎn)為字符串,不只數(shù)組,,所有對(duì)象均可使用該方法 var a = [5,6,7,8,9,['A','BB'],100]; document.write(a.toString()); // -> 5,6,7,8,9,A,BB,100 (3)valueOf 根據(jù)不同對(duì)象返回不同原始值,,用于輸出的話跟toString()差不多,但是toString()是返回string類型,,而valueOf()是返回原對(duì)象類型,。 var a = [1,2,3,[4,5,6,[7,8,9]]]; document.write(a.valueOf()); // -> 1,2,3,4,5,6,7,8,9 5.使用slice返回?cái)?shù)組片段 var a = ['a','b','c','d','e','f','g']; alert(a.slice(1,2)); // -> b alert(a.slice(2)); // -> c,d,e,f,g alert(a.slice(-4)); // -> d,e,f,g alert(a.slice(-2,-6)); // -> 空
a.slice(1,2),,從下標(biāo)為1開(kāi)始,到下標(biāo)為2之間的數(shù),,注意并不包括下標(biāo)為2的元素 如果只有一個(gè)參數(shù),,則默認(rèn)到數(shù)組最后。 -4是表示倒數(shù)第4個(gè)元素,,所以返回倒數(shù)的四個(gè)元素,。 alert(a.slice(-2,-6))從倒數(shù)第2開(kāi)始,因?yàn)槭峭蠼厝?,所以顯然取不到前面的元素,,所以返回空數(shù)組,如果改成 a.slice(-6,-2) 則返回b,c,d,e,。
參考: http://www./2011/03/31/JAVASCRIPTARRAY.html
|