JS數(shù)組操作

添加和刪除元素的方法
1.push & pop
        var arr1 = [1,2,3,4,5,6];
        // push:從尾部添加元素,返回元素的個(gè)數(shù) / pop:從尾部刪除元素弱判,返回被刪除的元素
        var result2 = arr1.push('aa');
        // 結(jié)果:arr1 = 1,2,3,4,5,6,aa result2 = 7(數(shù)組的個(gè)數(shù))
        var result = arr1.pop();
        // 結(jié)果:arr1 = 1,2,3,4,5,6  result = aa(被拋棄的數(shù)組)
2.shift& unshift
        var arr1 = [1,2,3,4,5,6];

        // shift:從頭部刪除元素锥惋,返回被刪除的元素 / unshift:從頭部添加元素,返回添加元素后的個(gè)數(shù)

        result = arr1.shift();
        // 結(jié)果:arr1 = 2,3,4,5,6  result = 1(被拋棄的數(shù)組)

        result = arr1.unshift('aa');
        // 結(jié)果:arr1 = aa,2,3,4,5,6  result = 6(添加元素后數(shù)組的個(gè)數(shù))
3. splice / slice
        /*
        aplice: 拋棄一些元素遭商,在拋棄元素的位置插入一些元素,如果傳入兩個(gè)參數(shù)就只有刪除沒有追加淹父,如果只有一個(gè)參數(shù)就是從該位置刪除到最后 操作數(shù)組本身
                第一個(gè)參數(shù):起始位置
                第二個(gè)參數(shù):要?jiǎng)h除元素的個(gè)數(shù)
                第三個(gè)參數(shù)及以后的參數(shù):追加的新元素,從刪除的位置開始追加
         */
        arr1 = [1,2,3,4,5];
        result = arr1.splice(1,2,3,4,5);
        // 結(jié)果:arr1 = 1,3,4,5,4,5  result = 2,3(被拋棄的數(shù)組)

        /*
        slice:截取范圍  (左閉右開區(qū)間) 不操作數(shù)組本身
         */
        arr1 = [1,2,3,4,5];
        result = arr1.slice(2,5);
        // 結(jié)果:arr1 = 1,2,3,4,5  result = 3,4,5(截取到的數(shù)組)
concat & join & sort & reverse
        var arr1 = [1,2,3];
        var arr2 = [true, 4,5];

        result = arr1.concat(arr2);
        // 結(jié)果:result=1,2,3,true,4,5   arr1 = 1,2,3    arr2 = true,4,5
        // concat不操作數(shù)組本身困介,返回兩個(gè)數(shù)組連接后的數(shù)組

        result = arr1.join('a');
        // 結(jié)果:result=1a2a3   arr1 = 1,2,3
        //不操作數(shù)組本身座哩,在每個(gè)元素之間添加內(nèi)容

        arr1 = [3,6,1,14,28,9];
        result = arr1.sort();
        // sort 正序排序粮彤, 按字母順序排序
        // 結(jié)果:result=1,14,28,3,6,9   arr1 = 1,14,28,3,6,9

        arr1 = [3,6,1,14,28,9];
        result = arr1.reverse();
        // reverse: 將數(shù)組反轉(zhuǎn)
        // 結(jié)果:result=9,28,14,1,6,3   arr1 = 9,28,14,1,6,3
ECMAScript5中Array特性
位置方法: indexOf & lastIndexOf
        var arr = [1,2,3,4,5,4,3,2,1];
        var index = arr.indexOf(4);
        // 結(jié)果: index = 3     返回第一次出現(xiàn)的位置
        index = arr.indexOf(4,4);
        // 結(jié)果: index = 5     返回從第一個(gè)參數(shù)位置開始第一次出現(xiàn)的位置

        index = arr.lastIndexOf(4);
        // 結(jié)果: index = 5     從后向前导坟,返回第一次出現(xiàn)的位置
迭代方法: every & filter & forEach & some & map
        // every: 對(duì)數(shù)組的每一元素進(jìn)行函數(shù)的運(yùn)行,如果都返回true最后結(jié)果為true尘惧,如果有一個(gè)返回false則結(jié)果為false
        var result = arr.every(function(item, index, array){ // item:元素項(xiàng)递递,index:索引啥么, array:數(shù)組本身
            return item > 2;
        });
        // 結(jié)果: false

        // some:和every相反贰逾,如果有一項(xiàng)返回true結(jié)果為true

        // filter :對(duì)數(shù)組的每一個(gè)元素進(jìn)行函數(shù)運(yùn)行,把返回函數(shù)運(yùn)行的結(jié)果過濾出來
        result = arr.filter(function (item, index, array) {
           return item > 2;
        });
        // 結(jié)果: 3,4,5,4,3

        //fotEach: 循環(huán)數(shù)組的每一項(xiàng)氯迂,并執(zhí)行一個(gè)方法
        arr.forEach(function (item, index, array) {
           item * 2;
        });

        // map :對(duì)數(shù)組的每一個(gè)元素進(jìn)行函數(shù)運(yùn)行,函數(shù)執(zhí)行完畢后 把新的結(jié)果返回
        result = arr.map(function (item, index, array) {
            return item * 2;
        });
        // 結(jié)果: result = 2,4,6,8,10,8,6,4,2
縮小方法: reduce & reduceRight
        // reduce: 處理前一個(gè)值和當(dāng)前值的關(guān)系
        var arr = [1,2,3,4,5,4,3,2,1];
        result = arr.reduce(function (prev,cur,index,array) {
        // 參數(shù)含義(前一個(gè)值囚戚, 當(dāng)前值轧简, 索引位置匾二, 數(shù)組)
            return prev + cur; // 將前一個(gè)值和當(dāng)前值相加
        });
        // 結(jié)果: result = 25

        // reduceRight : 從右側(cè)開始遍歷
        result = arr.reduceRight(function (prev,cur,index,array) {
            // 參數(shù)含義(前一個(gè)值, 當(dāng)前值皮璧, 索引位置分飞, 數(shù)組)
            return prev + cur;
        });
        // 結(jié)果: result = 25
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市讯檐,隨后出現(xiàn)的幾起案子染服,更是在濱河造成了極大的恐慌,老刑警劉巖挖垛,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秉颗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡哪替,警方通過查閱死者的電腦和手機(jī)梢灭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門蒸其,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人义屏,你說我怎么就攤上這事闽铐。” “怎么了踢星?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵沐悦,是天一觀的道長五督。 經(jīng)常有香客問我,道長充包,這世上最難降的妖魔是什么淆储? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任遏考,我火速辦了婚禮蓝谨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘咖楣。我一直安慰自己芦昔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布料扰。 她就那樣靜靜地躺著晒杈,像睡著了一般孔厉。 火紅的嫁衣襯著肌膚如雪撰豺。 梳的紋絲不亂的頭發(fā)上污桦,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音舅柜,去河邊找鬼致份。 笑死氮块,一個(gè)胖子當(dāng)著我的面吹牛绍载,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阳谍,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼吊洼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎樱调,沒想到半個(gè)月后笆凌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乞而,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡爪模,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年洁段,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了共郭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片除嘹。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尉咕,死狀恐怖年缎,靈堂內(nèi)的尸體忽然破棺而出晦款,到底是詐尸還是另有隱情,我是刑警寧澤蛇损,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布股囊,位于F島的核電站稚疹,受9級(jí)特大地震影響祭务,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一赂鲤、第九天 我趴在偏房一處隱蔽的房頂上張望数初。 院中可真熱鬧梗顺,春花似錦荚守、人聲如沸矗漾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谷市。三九已至鹏漆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間括蝠,已是汗流浹背饭聚。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工法绵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酪碘,地道東北人婆跑。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓滑进,卻偏偏與公主長得像扶关,于是被迫代替她去往敵國和親节槐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子搀庶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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

  • JS提供了很多方便操作數(shù)組的方法揍庄,本文所要分享的就是如何快速對(duì)數(shù)組進(jìn)行增蚂子、刪、改蒂破、查别渔。 一、增 1壹哺、push() ...
    前端王睿閱讀 7,628評(píng)論 2 48
  • 由于最近都在freecodecamp上刷代碼,運(yùn)用了很多JavaScript數(shù)組的方法攀甚,因此做了一份關(guān)于JavaS...
    2bc5f46e925b閱讀 1,975評(píng)論 0 16
  • Array 對(duì)象方法concat()連接兩個(gè)或更多的數(shù)組炸庞,并返回結(jié)果荚斯。 join()把數(shù)組的所有元素放入一個(gè)字符串...
    青春前行閱讀 227評(píng)論 0 0
  • 一事期、concat():連接兩個(gè)或更多數(shù)組 var arr1 = new Array("1","2","3"); v...
    活叁黃輝馮閱讀 444評(píng)論 0 2
  • js基礎(chǔ)篇(三)——DOM的各種操作js基礎(chǔ)篇(二)——字符串的各種操作 1. 創(chuàng)建數(shù)組 創(chuàng)建一個(gè)數(shù)組,有三種方法...
    hanyuntao閱讀 1,623評(píng)論 0 14