數(shù)組的push、pop说榆、shift虚吟、unshift方法

![Uploading 9247.tmp_651084.png . . .]

數(shù)組的棧

棧是一種LIFO(Last-In-First-Out,后進(jìn)先出)的數(shù)據(jù)結(jié)構(gòu)签财,也就是最新添加的項(xiàng)最早被移除串慰。

push方法

push從數(shù)組的后面推入數(shù)組的項(xiàng),并返回?cái)?shù)組的長(zhǎng)度唱蒸。

pop方法

pop刪除數(shù)組的最后一項(xiàng)邦鲫,并返回改項(xiàng)的值。

        var colors=new Array;
    var count=colors.push("green","blue");
    console.log(count);//2

    var a=['a','b','c'];
    var item=a.pop();
    console.log(item);//c
數(shù)組列隊(duì)

列隊(duì)數(shù)據(jù)的訪問(wèn)規(guī)則是先進(jìn)先出,F(xiàn)IFO(first in first out)的行為庆捺。列隊(duì)在列隊(duì)的末端添加項(xiàng)古今,在列隊(duì)的前端移除項(xiàng)。ECMAscript定義shift()方法移除前端的第一項(xiàng)滔以,并返回改項(xiàng)捉腥。

shift方法

shift方法移除數(shù)組的第一項(xiàng),并返回該項(xiàng)你画。

var a=['a','b','c'];
var item=a.shift();
console.log(item);//a
unshift方法

相反的抵碟,unshift方法在數(shù)組的前端添加任意項(xiàng),并返回?cái)?shù)組的長(zhǎng)度坏匪。

var a=['a','b','c'];
var item=a.unshift('1','1');
console.log(item);//5
push 和 unshift 的性能測(cè)試
        //push 和unshift的性能測(cè)試
        //=+new Date(),相當(dāng)于Date().valueOf();
    var arr=[];
    var startTime=new Date().valueOf();
    for(var i=0;i<100000;i++){
        arr.push(i);
    }
    var endTime=new Date().valueOf();
    console.log("調(diào)用push方法往數(shù)組中添加100000個(gè)元素耗時(shí)"+(endTime-startTime)+"毫秒")
    startTime=+new Date();
    arr=[];
    for(var i=0;i<100000;i++){
        arr.unshift(i);
    }
    endTime=+new Date();
    console.log("調(diào)用unshift方法往數(shù)組中添加100000個(gè)元素耗時(shí)"+(endTime-startTime)+"毫秒")

查看結(jié)果發(fā)現(xiàn)相差好多好多倍拟逮,可見(jiàn)中間的性能差異。所以少用unshift适滓。如果一定要用unshift敦迄,可以借助Array的reverse方法,先將數(shù)據(jù)push添加到數(shù)組粒竖,再執(zhí)行一次reverse颅崩,就達(dá)到unshift的效果了。

//reverse性能測(cè)試
    var d=[],s=+new Date;
    for (var i = 0; i <100000; i++) {
        d.push(i)
    };
    d.reverse()
    console.log("調(diào)用reverse方法將數(shù)組里面的100000元素的順序反轉(zhuǎn)耗時(shí):"+(+new Date - s)+"毫秒");

可見(jiàn)reverse方法性能不錯(cuò)蕊苗,可以代替unshift使用沿后。
同樣我們可以對(duì)pop,和shift方法進(jìn)行測(cè)試朽砰。

//pop 刪除時(shí)間
    var pop=[];
    for(var i=0;i<100000;i++){
        pop.push(i);
    }
    var e=+new Date;
    console.log(pop)
    for (var i = 0; i <100000; i++) {
        pop.pop();
        
    };
    console.log(pop);
    console.log("pop刪除數(shù)組耗時(shí):"+(+new Date - e)+"毫秒");

    //shift 刪除時(shí)間
    var shift=[];
    for(var i=0;i<100000;i++){
        shift.push(i);
    }
    var f=+new Date;
    console.log(shift)
    for (var i = 0; i <100000; i++) {
        shift.shift();  
    };
    console.log(shift);
    console.log("shift刪除數(shù)組耗時(shí):"+(+new Date - f)+"毫秒");

最后發(fā)現(xiàn)谷歌瀏覽器shift有著良好的性能表現(xiàn)尖滚,火狐相應(yīng)時(shí)間卻非常慢。

兩者有著巨大的差別瞧柔∑崤或許兩者有著不同的實(shí)現(xiàn)方式。

結(jié)

1.push推入數(shù)組造锅,放回?cái)?shù)組長(zhǎng)度
2.pop刪除數(shù)組最后一位撼唾,返回改項(xiàng)的值
3.shift 刪除數(shù)組的第一項(xiàng),并返回改項(xiàng)的值
4.unshift 從數(shù)組的第一項(xiàng)推入哥蔚,并返回?cái)?shù)組的長(zhǎng)度
5.push和unshift有著較大的性能差別倒谷,采用reverse方式代替unshift方式是不錯(cuò)的選擇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末糙箍,一起剝皮案震驚了整個(gè)濱河市渤愁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌深夯,老刑警劉巖抖格,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡雹拄,警方通過(guò)查閱死者的電腦和手機(jī)收奔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)办桨,“玉大人筹淫,你說(shuō)我怎么就攤上這事∧刈玻” “怎么了损姜?”我有些...
    開(kāi)封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)殊霞。 經(jīng)常有香客問(wèn)我摧阅,道長(zhǎng),這世上最難降的妖魔是什么绷蹲? 我笑而不...
    開(kāi)封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任棒卷,我火速辦了婚禮,結(jié)果婚禮上祝钢,老公的妹妹穿的比我還像新娘比规。我一直安慰自己,他們只是感情好拦英,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布蜒什。 她就那樣靜靜地躺著,像睡著了一般疤估。 火紅的嫁衣襯著肌膚如雪灾常。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天铃拇,我揣著相機(jī)與錄音钞瀑,去河邊找鬼。 笑死慷荔,一個(gè)胖子當(dāng)著我的面吹牛雕什,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播显晶,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼贷岸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了吧碾?” 一聲冷哼從身側(cè)響起凰盔,我...
    開(kāi)封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤墓卦,失蹤者是張志新(化名)和其女友劉穎倦春,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡睁本,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年尿庐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呢堰。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抄瑟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出枉疼,到底是詐尸還是另有隱情皮假,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布骂维,位于F島的核電站惹资,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏航闺。R本人自食惡果不足惜褪测,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望潦刃。 院中可真熱鬧侮措,春花似錦、人聲如沸乖杠。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)滑黔。三九已至笆包,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間略荡,已是汗流浹背庵佣。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汛兜,地道東北人巴粪。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像粥谬,于是被迫代替她去往敵國(guó)和親肛根。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

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