JavaScript數(shù)組定義

數(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只有一個屬性签孔,就是length角骤,length表示的是數(shù)組所占內(nèi)存空間的數(shù)目蝌戒,而不僅僅是數(shù)組中元素的個數(shù)窃判,在剛才定義的數(shù)組中厨姚,b.length的值為8

var a = new Array("first", "second", "third")

a[48] = "12"

document.write(a.length)

//顯示的結(jié)果是49

數(shù)組的length屬性是可寫的,這是一個非常有意思的屬性,我們可以通過這種方法來截取數(shù)組

var a = new Array("first", "second", "third")

delete a[1]

document.write(a.length)

//顯示的結(jié)果是3,說明即使刪除也無法改變數(shù)組的長度

var a = new Array("first", "second", "third")

a.length = 1

document.write(a.length)

//顯示的結(jié)果是1藕赞,說明只剩下一個元素了

方法

這里并沒有包括IE和FF并不兼容的一些方法:

toString():把數(shù)組轉(zhuǎn)換成一個字符串

toLocaleString():把數(shù)組轉(zhuǎn)換成一個字符串

join():把數(shù)組轉(zhuǎn)換成一個用符號連接的字符串

shift():將數(shù)組頭部的一個元素移出

unshift():在數(shù)組的頭部插入一個元素

pop():從數(shù)組尾部刪除一個元素

push():把一個元素添加到數(shù)組的尾部

concat():給數(shù)組添加元素

slice():返回數(shù)組的部分

reverse():將數(shù)組反向排序

sort():對數(shù)組進行排序操作

splice():插入、刪除或者替換一個數(shù)組元素

toString() 方法卖局,toLocaleString()方法的作用類似斧蜕,F(xiàn)F下的作用是完全相同的,IE的話如果元素是字符串砚偶,會在“,”后面加上一個空格批销,如果元素是數(shù)字洒闸,會擴展到兩位小數(shù),兩者都會改變字符串的length屬性均芽,所以考慮到兼容性丘逸,盡量不要使用toLocaleString()方法。

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ù)組

join()方法將數(shù)組中的所有元素轉(zhuǎn)換成字符串掀宋,然后連接起來深纲,這剛好和String的split()方法是一個相反的操作。join()默認是使用“,”作為分隔符布朦,當然你也可以在方法中指定分隔符

var a = new Array("first", "second", "third")

var s = a.join("...")

document.write(s)

//顯示的結(jié)果是“first...second...third”

pop()方法可以從數(shù)組尾部刪除若干個元素,push()方法把一個元素添加到數(shù)組的尾部昼窗,這兩個方法剛好是兩個相反的操作是趴。兩個都是對原來的數(shù)組進行操作,但是要注意push()方法返回的是新的數(shù)組的長度澄惊,而pop()方法則返回被刪去的那個元素唆途。

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()方法不會幫你打開一個數(shù)組

var c = new Array(1, 2, 3, 4, "first")

var d = c.pop() //c為[1, 2, 3, 4]? d為字符串形式的"first"

shift() 方法可以從數(shù)組頭部刪除一個元素,unshift()方法把若干元素添加到數(shù)組的頭部掸驱,這兩個方法剛好是兩個相反的操作肛搬。兩個都是對原來的數(shù)組進行操作,但是要注意unshift()方法返回的是新的數(shù)組的長度毕贼,而shift()方法則返回被刪去的那個元素温赔。

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()方法不會幫你打開一個數(shù)組,還有就是被插入數(shù)值的順序

var c = new Array("first", 1, 2, 3, 4)

var d = c.shift() //c為[1, 2, 3, 4]? d為字符串形式的"first"

concat()方法可以返回一個在原有數(shù)組上增添了元素的數(shù)組鬼癣,元素用“,”分隔陶贼,元素中如果有數(shù)組,將被展開并繼續(xù)添加待秃,但不支持多維數(shù)組形式的展開添加

var a = new Array("first", "second", "third")

s = a.concat("fourth",["fifth", "sixth"],["seventh", ["eighth", "ninth"]])

document.write(s[7])

// 顯示的結(jié)果是“eighth, ninth”拜秧,說明“eighth, ninth”是以數(shù)組的形式被添加了進去,此是s的值為["first", "second", "third", "fourth", "fifth", "sixth", "seventh", ["eighth", "ninth"]]

slice()方法返回數(shù)組的一個片斷章郁,或者說是子數(shù)組枉氮。slice()的參數(shù)表示字數(shù)組的始末位置,如果只有一個參數(shù)暖庄,就表示從該處開始一直取到最后聊替,如果參數(shù)出現(xiàn)負數(shù),則表示倒數(shù)的某個位置培廓。

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]

reverse()方法將數(shù)組反向排序佃牛,他并不創(chuàng)建和返回一個新的數(shù)組,而是在原有的數(shù)組上進行操作

var a = new Array("first", "second", "third")

a.reverse()

document.write(a)

//顯示的結(jié)果是“third,second,first”医舆,這時候數(shù)組的順序已經(jīng)顛倒了

sort()方法的作用是對數(shù)組進行排序俘侠,這是一個非常奇特的方法象缀,我不知道當初創(chuàng)作他的人是出于懶惰還是聰明,這是一個讓我印象深刻的方法爷速。

sort()方法的參數(shù)是一個有兩個參數(shù)央星,并且有返回值的函數(shù),如果返回的值大于零惫东,則說明前一個參數(shù)比后一個參數(shù)大莉给,等于零則相等,小于零說明前一個參數(shù)比后一個小廉沮,而相對小的那個參數(shù)將出現(xiàn)在排序的前列颓遏。

sort()方法直接在數(shù)組上進行操作,同時也返回值滞时,但是兩者似乎是等價的叁幢。sort()方法默認是用字母的順序進行排序

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ù)在后

splice()方法的作用是插入、刪除或者替換一個數(shù)組元素坪稽,他不光會在原有的數(shù)組上進行修改曼玩,還會返回被處理掉的內(nèi)容,因此這是一個功能強大窒百,但是不容易使用的方法黍判,splice()方法用前兩個參數(shù)進行定位,余下的參數(shù)表示插入部分篙梢。

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) //第二個參數(shù)表示長度顷帖,因此負數(shù)在此無效

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]? 后面部分會自動前后移動,以保持數(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()方法不會展開數(shù)組渤滞,只直接寫入

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窟她,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蔼水,更是在濱河造成了極大的恐慌震糖,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趴腋,死亡現(xiàn)場離奇詭異吊说,居然都是意外死亡,警方通過查閱死者的電腦和手機优炬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門颁井,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蠢护,你說我怎么就攤上這事雅宾。” “怎么了葵硕?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵眉抬,是天一觀的道長贯吓。 經(jīng)常有香客問我,道長蜀变,這世上最難降的妖魔是什么悄谐? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮库北,結(jié)果婚禮上爬舰,老公的妹妹穿的比我還像新娘。我一直安慰自己寒瓦,他們只是感情好情屹,可當我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杂腰,像睡著了一般垃你。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颈墅,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天蜡镶,我揣著相機與錄音雾袱,去河邊找鬼恤筛。 笑死,一個胖子當著我的面吹牛芹橡,可吹牛的內(nèi)容都是我干的毒坛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼林说,長吁一口氣:“原來是場噩夢啊……” “哼煎殷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起腿箩,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤豪直,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后珠移,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弓乙,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年钧惧,在試婚紗的時候發(fā)現(xiàn)自己被綠了暇韧。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡浓瞪,死狀恐怖懈玻,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情乾颁,我是刑警寧澤涂乌,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布艺栈,位于F島的核電站,受9級特大地震影響骂倘,放射性物質(zhì)發(fā)生泄漏眼滤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一历涝、第九天 我趴在偏房一處隱蔽的房頂上張望诅需。 院中可真熱鬧,春花似錦荧库、人聲如沸堰塌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽场刑。三九已至,卻和暖如春蚪战,著一層夾襖步出監(jiān)牢的瞬間牵现,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工邀桑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瞎疼,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓壁畸,卻偏偏與公主長得像贼急,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子捏萍,可洞房花燭夜當晚...
    茶點故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Javascript有很多數(shù)組的方法太抓,有的人有W3C的API,還可以去MDN上去找令杈,但是我覺得API上說的不全走敌,M...
    頑皮的雪狐七七閱讀 4,081評論 0 6
  • 先決條件 在閱讀這個教程之前,你多少需要知道點python逗噩。如果你想從新回憶下掉丽,請看看Python Tutoria...
    舒map閱讀 2,577評論 1 13
  • NumPy是Python中關(guān)于科學(xué)計算的一個類庫,在這里簡單介紹一下给赞。 來源:https://docs.scipy...
    灰太狼_black閱讀 1,228評論 0 5
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理机打,服務(wù)發(fā)現(xiàn),斷路器片迅,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • 吃完午飯 母親忙著刷鍋残邀,洗碗 我忙著倒水,洗衣 不知道洗衣機壞了 不知道村里面那么一個熟悉的人 已經(jīng)老了三年 它是...
    大昭大昭大閱讀 113評論 0 0