摘要:題目大概意思給定兩個維度不確定的數(shù)組,求它們之間不重復(fù)的數(shù)據(jù)合集返回一個新數(shù)組備在當(dāng)時的題目,并沒有說明數(shù)組中數(shù)據(jù)的準(zhǔn)確類型,本次采用了字符串和數(shù)值混合的數(shù)據(jù)來測試如給定返回本次需要考慮的問題數(shù)組降維因為數(shù)組的維度是不確定的,我們需要做的是
題目大概意思:給定兩個維度不確定的數(shù)組,求它們之間不重復(fù)的數(shù)據(jù)合集,返回一個新數(shù)組
(備:在當(dāng)時的題目,并沒有說明數(shù)組中數(shù)據(jù)的準(zhǔn)確類型,本次采用了字符串和數(shù)值混合的數(shù)據(jù)來測試)
如給定:
arr1 = [11, 25, 44, [52, 44, 23], "52"]
arr2 = [16, 25, 17, [11, 25, [23, 18]]]
返回:[52, "52", 16, 17, 18]
本次需要考慮的問題:
1、數(shù)組降維
因為數(shù)組的維度是不確定的,我們需要做的是把兩個數(shù)組都轉(zhuǎn)換成一維數(shù)組。
在ES6中,提供了這么一個方法
Array.prototype.flat()
在數(shù)組的層次不確定時,可以使用Infinity關(guān)鍵字作為參數(shù),即:
Array.prototype.flat(Infinity)
2、使用對象來判斷數(shù)據(jù)出現(xiàn)的次數(shù)
本次需要的數(shù)據(jù)是:兩個數(shù)組合并后只出現(xiàn)一次的數(shù)據(jù),這里我想到的是采用對象的鍵值對方法,但是由于普通對象的鍵是字符串類型,對于數(shù)組中同時出現(xiàn)字符串和數(shù)值類型則無法判斷,所以我采用Map集合來存儲數(shù)據(jù),Map集合是ES6提供的一個完整的hash結(jié)構(gòu),鍵可以是任意類型
代碼如下:
function fn(arr1, arr2){ let map = new Map(); let res = []; let arr = arr1.flat(Infinity).concat(arr2.flat(Infinity)); arr.forEach(ele => { map.has(ele) ? map.set(ele, false) : map.set(ele, true) }); for(let [key, val] of map.entries()){ if(val){ res.push(key); } } return res; }
測試代碼:
let arr1 = [11, 25, 44, [52, 44, 23], "52"]; let arr2 = [16, 25, 17, [11, 25, [23, 18]]]; console.log(fn(arr1, arr2));
結(jié)果:
[52, "52", 16, 17, 18]
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/101972.html
摘要:春招結(jié)果五月份了,春招已經(jīng)接近尾聲,因為到了周五晚上剛好有空,所以簡單地記錄一下自己的春招過程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品會電商前端研發(fā)部大數(shù)據(jù)與威脅分析事業(yè)部京東精銳暑假實習(xí)生的騰訊的是早上打過來的。 春招結(jié)果 五月份了,春招已經(jīng)接近尾聲,因為到了周五晚上剛好有空,所以簡單地記錄一下自己的春招過程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品...
摘要:春招前端實習(xí)面試記錄從就開始漸漸的進行復(fù)習(xí),月末開始面試,到現(xiàn)在四月中旬基本宣告結(jié)束。上海愛樂奇一面盒模型除之外的面向?qū)ο笳Z言繼承因為是視頻面試,只記得這么多,只感覺考察的面很廣,前端后端移動端都問了,某方面也有深度。 春招前端實習(xí)面試記錄(2019.3 ~ 2019.5) 從2019.1就開始漸漸的進行復(fù)習(xí),2月末開始面試,到現(xiàn)在四月中旬基本宣告結(jié)束。在3月和4月經(jīng)歷了無數(shù)次失敗,沮...
摘要:在函數(shù)中通過賦予變量,在函數(shù)中,指向定時器以及回調(diào)函數(shù)當(dāng)不需要或者時,定時器沒有被,定時器的回調(diào)函數(shù)以及內(nèi)部依賴的變量都不能被回收,造成內(nèi)存泄漏。比如使用了定時器,需要在中做對應(yīng)銷毀處理。 前言: 3月5日,從中山去往廣州,一大早7點多就做好準(zhǔn)備了,在高鐵站了30分鐘,轉(zhuǎn)廣州地鐵又站了90分鐘,去到地鐵口,就有一輛cvte的大巴車過來接送,我選擇的面試時間是11:00-12:00,但前...
摘要:在函數(shù)中通過賦予變量,在函數(shù)中,指向定時器以及回調(diào)函數(shù)當(dāng)不需要或者時,定時器沒有被,定時器的回調(diào)函數(shù)以及內(nèi)部依賴的變量都不能被回收,造成內(nèi)存泄漏。比如使用了定時器,需要在中做對應(yīng)銷毀處理。 前言: 3月5日,從中山去往廣州,一大早7點多就做好準(zhǔn)備了,在高鐵站了30分鐘,轉(zhuǎn)廣州地鐵又站了90分鐘,去到地鐵口,就有一輛cvte的大巴車過來接送,我選擇的面試時間是11:00-12:00,但前...
摘要:面經(jīng)因為我完全沒有面試經(jīng)驗,從來沒有經(jīng)歷過面試,于是想著在去這類大公司面試之前先找成都的小公司練練手,積累點面試經(jīng)驗。于是三月份開始就有成都的小公司開始約我面試。 前序 從我高考成績出來那一刻開始,從我在高考志愿上填上計算機科學(xué)與技術(shù)這幾個當(dāng)時在心中堪稱神圣的幾個字開始,我就已經(jīng)把進入中國互聯(lián)網(wǎng)最高殿堂BAT作為我整個大學(xué)奮斗的目標(biāo),哪怕我就讀的是一所位于內(nèi)陸的雙非一本大學(xué)我也認(rèn)為我能...
閱讀 695·2021-11-18 10:07
閱讀 2886·2021-09-22 16:04
閱讀 888·2021-08-16 10:50
閱讀 3360·2019-08-30 15:56
閱讀 1791·2019-08-29 13:22
閱讀 2700·2019-08-26 17:15
閱讀 1247·2019-08-26 10:57
閱讀 1116·2019-08-23 15:23