JavaScript中的數(shù)組 (二)

JavaScript中預(yù)先定義了許多數(shù)組方法翘地,這些方法都被定義在了Array.prototype中申尤,任何數(shù)組都可以使用這些方法。 下面將介紹一些比較常用的方法

  • 加入和刪除

  • 從數(shù)組頭部加入或者刪除 shift() unshift()
    shift() 刪除數(shù)組頭部的元素并返回該元素
    unshift() 可以接受多個(gè)參數(shù)衙耕,表明向數(shù)組頭部加入多個(gè)元素 昧穿。需要注意的是<em>unshift是一次性加入這些元素而并非依次加入</em>
    var a=[1,2]; a.unshift(3,4); console.log (a) // [3,4,1,2] 而并不是 [4,3,1,2]
    unshift 返回新數(shù)組的長度

  • 從數(shù)組尾部加入或者刪除 push() pop()
    與shift() unshift ()方法類似
    pop() 刪除尾部元素并返回該元素
    push() 可以向數(shù)組尾部加入多個(gè)元素,并返回新的長度橙喘。

  • 通用方法splice()
    splice() 方法可以在數(shù)組任意相同位置插入或者刪除元素时鸵。
    splice 方法的第一個(gè)參數(shù)制定了插入或者刪除的位置 。如果該參數(shù)為負(fù)數(shù) 則表示相對(duì)于數(shù)組最后一個(gè)元素的位置厅瞎。如果該參數(shù)大于長度饰潜,則會(huì)被設(shè)置為該數(shù)組的長度。
    第二個(gè)參數(shù)表示需要?jiǎng)h除元素的個(gè)數(shù)磁奖,如果該參數(shù)被省略或者大于剩余的元素個(gè)數(shù)囊拜,則剩下的元素都會(huì)被刪除。
    之后的參數(shù)表示需要被加入的元素比搭。
    splice 方法返回被刪除的元素組成的數(shù)組冠跷。如果沒有元素被刪除南誊,則返回空數(shù)組。

  • 合并多個(gè)數(shù)組 cancat()
    cancat() 方法依次連接 調(diào)用該方法本身的數(shù)組和每一個(gè)參數(shù)并返回新數(shù)組最為結(jié)果蜜托。有幾個(gè)需要注意的地方:

    • 如果任何一個(gè)參數(shù)是數(shù)組抄囚,該方法連接的是數(shù)組中的元素,而并非數(shù)組本身橄务。 <em>該方法并不會(huì)遞歸扁平化數(shù)組中的數(shù)組元素幔托!</em>
      var a=[1,2]; var res=a.concat(3,[4,5],[[6,7],8]); console.log(res); // [1,2,3,4,5,[6,7],8]
  • <em>該方法不會(huì)改變原有數(shù)組!</em>

  • 還可以使用push方法合并兩個(gè)數(shù)組:
    Array.prototype.push.apply(a,b);
    合并后的數(shù)組將會(huì)存儲(chǔ)在a中蜂挪,并不會(huì)產(chǎn)生一個(gè)新的數(shù)組重挑。所以這種方法比上一種更節(jié)省內(nèi)存。

  • 元素排序 sort()
    js中的排序方法類似于其他語言棠涮,也可以接受一個(gè)比較函數(shù)作為參數(shù)谬哀。
    function compareFunction(a,b){ //比較函數(shù)接受兩個(gè)參數(shù),代表被比較的兩個(gè)元素严肪。 if (希望a 在 b 前面) return -1; if (希望a 在 b 后面) return 1; if (a==b) return 0; }
    需要注意的是史煎,當(dāng)沒有比較函數(shù)時(shí),數(shù)組元素按照字符串排序規(guī)則來排序(unicode)驳糯。
    var a=[2,1,10,21]; a.sort(); console.log(a); // [1,10,2,21] 而并非[1,2,10,21]

    • <em>該方法會(huì)改變原有數(shù)組篇梭!</em>
  • 倒序 reverse()
    顧名思義,該方法會(huì)將數(shù)組中的元素顛倒順序酝枢。

    • <em>該方法會(huì)改變原有數(shù)組恬偷!</em>
  • 元素拼接 join()
    該方法將數(shù)組中的元素依次拼接成字符串。
    join()方法接受一個(gè)可選參數(shù)隧枫,代表拼接的連接符喉磁。默認(rèn)連接符是逗號(hào)','

  • 子數(shù)組 slice()
    slice()方法用來獲取一個(gè)數(shù)組的子數(shù)組(部分?jǐn)?shù)組)。
    該方法接受兩個(gè)參數(shù):起始位置 和 結(jié)束為止官脓。該方法返回子數(shù)組。
    需要有幾個(gè)注意的地方:

  • 如果沒有指定起始位置涝焙,默認(rèn)從0開始

  • 如果沒有指定結(jié)束位置卑笨, 默認(rèn)到數(shù)組結(jié)尾。

  • 不包含結(jié)束位置的元素

  • 如果參數(shù)出現(xiàn)負(fù)數(shù)仑撞,同splice 一樣赤兴, 代表相對(duì)于尾元素的位置。

  • <em>該方法不會(huì)改變原有數(shù)組隧哮!</em>
    var a=[1,2,3]; console.log(a.slice()); //[1,2,3] console.log(a.slice(1)); //[2,3] console.log(a.slice(0,1)); //[1] console.log(a.slice(-1)); // [3] console.log(a.slice(-2,-1)); //[2]
    以上就是es3中定義的一些數(shù)組方法桶良,下一節(jié)將會(huì)講解es5中新定義的一組方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沮翔,一起剝皮案震驚了整個(gè)濱河市陨帆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖疲牵,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件承二,死亡現(xiàn)場離奇詭異,居然都是意外死亡纲爸,警方通過查閱死者的電腦和手機(jī)亥鸠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來识啦,“玉大人负蚊,你說我怎么就攤上這事⊥窍” “怎么了家妆?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長题翻。 經(jīng)常有香客問我揩徊,道長,這世上最難降的妖魔是什么嵌赠? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任塑荒,我火速辦了婚禮,結(jié)果婚禮上姜挺,老公的妹妹穿的比我還像新娘齿税。我一直安慰自己,他們只是感情好炊豪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布凌箕。 她就那樣靜靜地躺著,像睡著了一般词渤。 火紅的嫁衣襯著肌膚如雪牵舱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天缺虐,我揣著相機(jī)與錄音芜壁,去河邊找鬼。 笑死高氮,一個(gè)胖子當(dāng)著我的面吹牛慧妄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剪芍,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼塞淹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了罪裹?” 一聲冷哼從身側(cè)響起饱普,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤运挫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后费彼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滑臊,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年箍铲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了雇卷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颠猴,死狀恐怖关划,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翘瓮,我是刑警寧澤贮折,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站资盅,受9級(jí)特大地震影響调榄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呵扛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一每庆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧今穿,春花似錦缤灵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至芝薇,卻和暖如春胚嘲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洛二。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國打工慢逾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人灭红。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像口注,于是被迫代替她去往敵國和親变擒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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