JS中合并多個數(shù)組,且去除數(shù)組重復元素


昨晚寫的小demo骗炉,寫一個方法合并傳入的多個數(shù)組照宝,并去除重復元素,具體實現(xiàn)如下:

function merge(bigArray) {
    let array = [];
    const middeleArray = bigArray.reduce((a,b) => {
        return a.concat(b);
    });

    middeleArray.forEach((arrItem) => {
        if(array.indexOf(arrItem) == -1){
            array.push(arrItem);
        }
    });

    return array;
}

console.log(merge([[4,5],[1,1],[2,3],[4,2,3]]));

因為要傳入多個數(shù)組句葵,所以可以傳入二維數(shù)組的厕鹃,這樣一來可以使用數(shù)組的reduce方法將數(shù)組內(nèi)嵌套的數(shù)組依次合并;

關(guān)于數(shù)組去重乍丈,我總結(jié)了以下四種:

  1. 要求必須返回原數(shù)組剂碴,可以對該數(shù)組進行循環(huán),如果當前下標和當前元素在數(shù)組中的lastIndex不同轻专,則刪除這個元素忆矛,代碼如下:
arr.forEach((item,index) => {
    if(index != arr.lastIndexOf(item)){
        arr.splice(index,1);
    }
})
  1. 要求返回新數(shù)組,可以定義一個新數(shù)組请垛,對原數(shù)組進行循環(huán)催训,判斷如果當前元素在新數(shù)組中不存在(即index為-1),將其push進新數(shù)組宗收,也就是demo中的寫法漫拭。

  2. 要求返回新數(shù)組,最簡單的應(yīng)該是使用數(shù)組的filter方法混稽,將當前下標和當前元素在數(shù)組中的lastIndex相同的元素篩選出來采驻,具體實現(xiàn)如下:

function removeSame(arr) {
    return arr.filter((item,index) => 
    index ===arr.lastIndexOf(item));
}

注:使用ES6時當=>后面只有一條語句可以省略{ }return

  1. 要求返回新數(shù)組,且要求在去重時將重復元素刪掉匈勋,也就是說礼旅,輸入[1,2,2,3],要返回[1,3],就可以利用數(shù)組的filter方法颓影,將當前元素的index和lastIndex相同(注意比較與第3項的不同)的元素篩選出來各淀,具體實現(xiàn)如下:
function removeSame(arr) {
    return arr.filter((item) =>
    arr.indexOf(item) === arr.lastIndexOf(item));
}

能想到的暫時就是這些,歡迎補充诡挂,我是Miss_cheng

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末碎浇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子璃俗,更是在濱河造成了極大的恐慌奴璃,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件城豁,死亡現(xiàn)場離奇詭異苟穆,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門雳旅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跟磨,“玉大人,你說我怎么就攤上這事攒盈〉志校” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵型豁,是天一觀的道長僵蛛。 經(jīng)常有香客問我,道長迎变,這世上最難降的妖魔是什么充尉? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮衣形,結(jié)果婚禮上驼侠,老公的妹妹穿的比我還像新娘。我一直安慰自己泵喘,他們只是感情好泪电,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纪铺,像睡著了一般相速。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鲜锚,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天突诬,我揣著相機與錄音,去河邊找鬼芜繁。 笑死旺隙,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的骏令。 我是一名探鬼主播蔬捷,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼榔袋!你這毒婦竟也來了周拐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤凰兑,失蹤者是張志新(化名)和其女友劉穎妥粟,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吏够,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡勾给,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年滩报,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片播急。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡脓钾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桩警,到底是詐尸還是另有隱情惭笑,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布生真,位于F島的核電站,受9級特大地震影響捺宗,放射性物質(zhì)發(fā)生泄漏柱蟀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一蚜厉、第九天 我趴在偏房一處隱蔽的房頂上張望长已。 院中可真熱鬧,春花似錦昼牛、人聲如沸术瓮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胞四。三九已至,卻和暖如春伶椿,著一層夾襖步出監(jiān)牢的瞬間辜伟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工脊另, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留导狡,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓偎痛,卻偏偏與公主長得像旱捧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子踩麦,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

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

  • 由于最近都在freecodecamp上刷代碼枚赡,運用了很多JavaScript數(shù)組的方法,因此做了一份關(guān)于JavaS...
    2bc5f46e925b閱讀 1,976評論 0 16
  • 數(shù)組的定義 數(shù)組是按序號排列的一組值靖榕,每個值的位置都有編號(從0開始)标锄。數(shù)組本質(zhì)上是一種特殊的對象。它的鍵名是按(...
    Allin_Lin閱讀 553評論 0 0
  • js基礎(chǔ)篇(三)——DOM的各種操作js基礎(chǔ)篇(二)——字符串的各種操作 1. 創(chuàng)建數(shù)組 創(chuàng)建一個數(shù)組茁计,有三種方法...
    hanyuntao閱讀 1,623評論 0 14
  • 此文章用于歸納Array的所有方法 在JavaScript中料皇,除了Object谓松,用得最多的可能就是數(shù)組Array了...
    moonburn閱讀 279評論 1 3
  • 至去年離職整整一年多了,從開始的彷徨到慢慢習慣践剂,到現(xiàn)在現(xiàn)在的這種享受轉(zhuǎn)變太大了鬼譬,連自己都不太相信,甚至有時感嘆前面...
    紅豬豬閱讀 434評論 2 3