国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數組扁平化并去重排序

104828720 / 740人閱讀

摘要:題目相關知識去除字符串里面的重復字符。該運算符將一個數組,變為參數序列。展平數組的方法只能展平一層默認為。如果原數組有空位,方法會跳過空位。展平后每個數組中的至是字符串,可根據需要再轉換參考文章

題目

var arr=[ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];

1 .

Array.from(new Set(arr.flat(Infinity))).sort((a,b)=>{ return a-b})

2 .

function flatten(arr) {
    while (arr.some(item => Array.isArray(item))) {
        arr = [].concat(...arr);
    }
    return arr;
}
Array.from(new Set(flatten(arr))).sort((a, b) => {
 return a - b
})

3.

Array.from(new Set(arr.toString().split(",").map((v)=>{return parseInt(v,10)}))).sort((a,b)=>{ return a-b})
相關知識 Set
[...new Set("ababbc")].join("")
// "abc"  去除字符串里面的重復字符。
const set = new Set([1, 2, 3, 4, 4]);
[...set]
// [1, 2, 3, 4]
...
console.log(...[1, 2, 3])   //1 2 3
console.log([1, 2, 3])   //?[1, 2, 3]

該運算符將一個數組,變為參數序列。

展平數組的方法 1.contact

只能展平一層

[1,2,3].concat([4,5,6],[7,8,9]) // [1, 2, 3, 4, 5, 6, 7, 8, 9]
["a","b","c"].concat(1,[2,3],[[4,5]]) // ["a", "b", "c", 1, 2, 3, [4,5]]

2. flat
[1, 2, [3, 4]].flat()
// [1, 2, 3, 4]
[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]]  默認為1。

[1, 2, [3, [4, 5]]].flat(2)
// [1, 2, 3, 4, 5]
[1, [2, [3]]].flat(Infinity)
// [1, 2, 3] 
// 如果不管有多少層嵌套,都要轉成一維數組,可以用`Infinity`關鍵字作為參數。
[1, 2, , 4, 5].flat()
// [1, 2, 4, 5]   如果原數組有空位,`flat()`方法會跳過空位。
3.toString()

toString()展平后每個數組中的至是字符串,可根據需要再轉換

var arr=[ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
arr.toString();

參考文章

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/106604.html

相關文章

  • 使用流

    摘要:將在非空的時候返回值,否則會拋出沒有這個元素的異常。構建流現在我們已經能夠使用從集合生成流了。由文件生成流不重復的單詞數預處理獲取流,使用后不用手動關閉流。我們使用得到流,其中每個元素就是文本里的一行。 篩選和切片 filter filter 會接受一個謂詞作為參數,并返回符合該條件的元素流。 List vegetarianMenu = menu ...

    codercao 評論0 收藏0
  • JS專題之數組展開

    摘要:根據需求的特點,數組展開需要進行迭代和遞歸。回答文章開頭的問題將多重數組轉化成單層數組的過程就是數組展開,也叫作數組扁平化一循環加遞歸最簡單的思路循環中判斷,如果子元素是數組則遞歸。 前言 首先什么是數組展開? 假如現在有這樣一個需求:將后臺的一個多重 List 數據,展開成一個 List 后,并去重后排序; [a, b, [c, d], [[d],e], f] => [a, b, ...

    boredream 評論0 收藏0
  • 深入理解Java內存模型(六)——final

    摘要:對于域,編譯器和處理器要遵守兩個重排序規則在構造函數內對一個域的寫入,與隨后把這個被構造對象的引用賦值給一個引用變量,這兩個操作之間不能重排序。這個屏障禁止處理器把域的寫重排序到構造函數之外。下一篇深入理解內存模型七總結 與前面介紹的鎖和volatile相比較,對final域的讀和寫更像是普通的變量訪問。對于final域,編譯器和處理器要遵守兩個重排序規則: 在構造函數內對一個fi...

    lixiang 評論0 收藏0
  • js 數組重排

    摘要:前段時間遇到的一個算法題,將上面的數組去重排序先轉換成字符串根據逗號分割再轉換成一個數組的語法去重將數組的字符串轉換成數字 前段時間遇到的一個算法題, var arr = [1,2,4,3,4,3,[12,2,4,5],[1,3,5,[234,432,5,3,2,5]]] 將上面的數組去重排序 let str = arr.toString() //先轉換成字符串 l...

    gekylin 評論0 收藏0
  • JMM——Java內存模型

    摘要:講什么內存模型描述了多個線程之間通過內存交互的規范,屏蔽了各種硬件和操作系統的訪問差異的,保證了程序在各種平臺下對內存的訪問都能保證效果一致。這個版本的內存模型在中仍然在使用。 JMM講什么 內存模型(Memory Model)描述了多個線程之間通過內存交互的規范,屏蔽了各種硬件和操作系統的訪問差異的,保證了Java程序在各種平臺下對內存的訪問都能保證效果一致。在現代的多處理器(多核處...

    keithyau 評論0 收藏0

發表評論

0條評論

104828720

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<