數(shù)組有四種定義的方式
使用構(gòu)造函數(shù): var a = new Array(); var b = new Array(8); var c = new Array("first", "second", "third"); 或者數(shù)組直接量: var d = ["first", "second", "third"]; 屬性
Array只有一個(gè)屬性,,就是length,,length表示的是數(shù)組所占內(nèi)存空間的數(shù)目,而不僅僅是數(shù)組中元素的個(gè)數(shù),,在剛才定義的數(shù)組中,,b.length的值為8
<script>
var a = new Array("first", "second", "third") a[48] = "12" document.write(a.length) //顯示的結(jié)果是49 </script> 數(shù)組的length屬性是可寫(xiě)的,這是一個(gè)非常有意思的屬性,,我們可以通過(guò)這種方法來(lái)截取數(shù)組 <script>
var a = new Array("first", "second", "third") delete a[1] document.write(a.length) //顯示的結(jié)果是3,,說(shuō)明即使刪除也無(wú)法改變數(shù)組的長(zhǎng)度 var a = new Array("first", "second", "third") a.length = 1 document.write(a.length) //顯示的結(jié)果是1,說(shuō)明只剩下一個(gè)元素了 </script> 方法 這里并沒(méi)有包括IE和FF并不兼容的一些方法:
toString():把數(shù)組轉(zhuǎn)換成一個(gè)字符串 toLocaleString():把數(shù)組轉(zhuǎn)換成一個(gè)字符串 join():把數(shù)組轉(zhuǎn)換成一個(gè)用符號(hào)連接的字符串 shift():將數(shù)組頭部的一個(gè)元素移出 unshift():在數(shù)組的頭部插入一個(gè)元素 pop():從數(shù)組尾部刪除一個(gè)元素 push():把一個(gè)元素添加到數(shù)組的尾部 concat():給數(shù)組添加元素 slice():返回?cái)?shù)組的部分 reverse():將數(shù)組反向排序 sort():對(duì)數(shù)組進(jìn)行排序操作 splice():插入,、刪除或者替換一個(gè)數(shù)組元素 toString() 方法,,toLocaleString()方法的作用類(lèi)似,F(xiàn)F下的作用是完全相同的,,IE的話(huà)如果元素是字符串,,會(huì)在“,”后面加上一個(gè)空格,,如果元素是數(shù)字,,會(huì)擴(kuò)展到兩位小數(shù),,兩者都會(huì)改變字符串的length屬性,所以考慮到兼容性,,盡量不要使用toLocaleString()方法,。
<script>
var a = new Array(1, 2, 3, [4, 5, [6, 7]]) var b = a.toString() //b為字符串形式的 "1, 2, 3, 4, 5, 6, 7" var c = new Array(1, 2, 3, [4, 5, [6, 7]]) var d = c.toLocaleString() //d為字符串形式的 "1, 2, 3, 4, 5, 6, 7" //toString()方法和toLocaleString()方法都可以拆解多維數(shù)組 </script> join()方法將數(shù)組中的所有元素轉(zhuǎn)換成字符串,然后連接起來(lái),,這剛好和String的split()方法是一個(gè)相反的操作,。join()默認(rèn)是使用“,”作為分隔符,當(dāng)然你也可以在方法中指定分隔符 <script>
var a = new Array("first", "second", "third") var s = a.join("...") document.write(s) //顯示的結(jié)果是“first...second...third” </script> pop()方法可以從數(shù)組尾部刪除若干個(gè)元素,,push()方法把一個(gè)元素添加到數(shù)組的尾部,,這兩個(gè)方法剛好是兩個(gè)相反的操作。兩個(gè)都是對(duì)原來(lái)的數(shù)組進(jìn)行操作,,但是要注意push()方法返回的是新的數(shù)組的長(zhǎng)度,,而pop()方法則返回被刪去的那個(gè)元素。 <script>
var a = new Array(1, 2, 3) var b = a.push(4,5,[6,7]) //a為[1, 2, 3, 4, 5, [6, 7]] b為6 注意push()方法不會(huì)幫你打開(kāi)一個(gè)數(shù)組 var c = new Array(1, 2, 3, 4, "first") var d = c.pop() //c為[1, 2, 3, 4] d為字符串形式的"first" </script> shift() 方法可以從數(shù)組頭部刪除一個(gè)元素,,unshift()方法把若干元素添加到數(shù)組的頭部,,這兩個(gè)方法剛好是兩個(gè)相反的操作。兩個(gè)都是對(duì)原來(lái)的數(shù)組進(jìn)行操作,,但是要注意unshift()方法返回的是新的數(shù)組的長(zhǎng)度,,而shift()方法則返回被刪去的那個(gè)元素。 <script>
var a = new Array(1, 2, 3) var b = a.unshift(4,5,[6,7]) //a為[4, 5, [6, 7], 1, 2, 3] b為6 注意unshift()方法不會(huì)幫你打開(kāi)一個(gè)數(shù)組,,還有就是被插入數(shù)值的順序 var c = new Array("first", 1, 2, 3, 4) var d = c.shift() //c為[1, 2, 3, 4] d為字符串形式的"first" </script> concat()方法可以返回一個(gè)在原有數(shù)組上增添了元素的數(shù)組,,元素用“,”分隔,元素中如果有數(shù)組,,將被展開(kāi)并繼續(xù)添加,,但不支持多維數(shù)組形式的展開(kāi)添加 <script>
var a = new Array("first", "second", "third") s = a.concat("fourth",["fifth", "sixth"],["seventh", ["eighth", "ninth"]]) document.write(s[7]) // 顯示的結(jié)果是“eighth, ninth”,說(shuō)明“eighth, ninth”是以數(shù)組的形式被添加了進(jìn)去,,此是s的值為["first", "second", "third", "fourth", "fifth", "sixth", "seventh", ["eighth", "ninth"]] </script> slice()方法返回?cái)?shù)組的一個(gè)片斷,,或者說(shuō)是子數(shù)組。slice()的參數(shù)表示字?jǐn)?shù)組的始末位置,,如果只有一個(gè)參數(shù),,就表示從該處開(kāi)始一直取到最后,如果參數(shù)出現(xiàn)負(fù)數(shù),,則表示倒數(shù)的某個(gè)位置,。 <script>
var a = new Array(1, 2, 3, 4, 5) var b = a.slice(3) //b為[4, 5] var c = a.slice(-3) //c為[3, 4, 5] var d = a.slice(1,-1) //d為[2, 3, 4] var e = a.slice(-3,-1) //e為[3, 4] </script> reverse()方法將數(shù)組反向排序,他并不創(chuàng)建和返回一個(gè)新的數(shù)組,,而是在原有的數(shù)組上進(jìn)行操作 <script>
var a = new Array("first", "second", "third") a.reverse() document.write(a) //顯示的結(jié)果是“third,second,first”,,這時(shí)候數(shù)組的順序已經(jīng)顛倒了 </script> sort()方法的作用是對(duì)數(shù)組進(jìn)行排序,,這是一個(gè)非常奇特的方法,我不知道當(dāng)初創(chuàng)作他的人是出于懶惰還是聰明,,這是一個(gè)讓我印象深刻的方法,。 sort()方法的參數(shù)是一個(gè)有兩個(gè)參數(shù),并且有返回值的函數(shù),,如果返回的值大于零,,則說(shuō)明前一個(gè)參數(shù)比后一個(gè)參數(shù)大,等于零則相等,,小于零說(shuō)明前一個(gè)參數(shù)比后一個(gè)小,,而相對(duì)小的那個(gè)參數(shù)將出現(xiàn)在排序的前列。 sort()方法直接在數(shù)組上進(jìn)行操作,,同時(shí)也返回值,,但是兩者似乎是等價(jià)的。sort()方法默認(rèn)是用字母的順序進(jìn)行排序 <script>
var a = new Array(33, 4, 111, 543) a.sort(way) function way(x, y){ if (x % 2 ==0) return 1; if (x % 2 !=0) return -1; } //排序的結(jié)果是使奇數(shù)在前偶數(shù)在后 </script> splice()方法的作用是插入,、刪除或者替換一個(gè)數(shù)組元素,,他不光會(huì)在原有的數(shù)組上進(jìn)行修改,還會(huì)返回被處理掉的內(nèi)容,,因此這是一個(gè)功能強(qiáng)大,,但是不容易使用的方法,splice()方法用前兩個(gè)參數(shù)進(jìn)行定位,,余下的參數(shù)表示插入部分,。 <script>
var a = new Array(1, 2, 3, 4, 5) var b = a.splice(2) //a為[1, 2] b為[3, 4, 5] var c = new Array(1, 2, 3, 4, 5) var d = c.splice(2,2) //c為[1, 2, 5] d為[3, 4] var e = new Array(1, 2, 3, 4, 5) var f = f.splice(-4,2) //e為[1, 4, 5] f為[2, 3] var g = new Array(1, 2, 3, 4, 5) var h = g.splice(-2,-2) //第二個(gè)參數(shù)表示長(zhǎng)度,因此負(fù)數(shù)在此無(wú)效 var i = new Array(1, 2, 3, 4, 5)
var j = i.splice(2,2,"first","second","third") //i為[1, 2, "first", "second", "third", 5] j為[3, 4] 后面部分會(huì)自動(dòng)前后移動(dòng),,以保持?jǐn)?shù)組的連續(xù)性 var k = new Array(1, 2, 3, 4, 5) var l = k.splice(2,2,["first","second"],"third") //k為[1, 2, ["first", "second"], "third", 5] l為[3, 4] splice()方法不會(huì)展開(kāi)數(shù)組,,只直接寫(xiě)入 </script> 本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/sony87615/archive/2009/09/07/4528708.aspx
|
|
來(lái)自: 天絕緣 > 《我的圖書(shū)館》