js數組扁平化

這一篇應該說是掃盲吧,或者說給自己的無知長個記性???

一開始聽到數組扁平化,這形容詞真讓我懵逼了一下。我是真沒想到降維那裏去,最後瞭解了一下
扁平化就是將多維數組轉換爲一維數組:

[1,[2,3,[4,[5,6]]]][1,2,3,4,5,6]

轉換的方法:

flat()

flat() 方法會按照一個可指定的深度遞歸遍歷數組,並將所有元素與遍歷到的子數組中的元素合併爲一個新數組返回。
說白了就是遍歷數組中每一個元素,最後再合併成一個新的數組

let a=[1,[2,3,[4,[5,6]]]];
			let b=a.flat(3);
			console.log(b);//[1, 2, 3, 4, 5, 6]

對於未知維度的數組就可以使用正無窮
Javascript中,超出 1.7976931348623157E+103088 的數值即爲Infinity,小於 -1.7976931348623157E+103088 的數值爲無窮小。

let a=[1,[2,3,[4,[5,6]]]];
			let b=a.flat(Infinity);
			console.log(b);//[1, 2, 3, 4, 5, 6]
偷偷說無論已知還是未知維度我都是用infinity,效率是一樣的

flat也可以去除數組空項:

let a=[1,[2,3,[4,[5,6]]],,];
			let b=a.flat(Infinity);
			console.log(b);//[1, 2, 3, 4, 5, 6]
			數組空項很少出現,但還是要記一下(是去除空項不是空字符串哦)

還有一個不得不說在渡一教育看到的一道題

在一個二維數組中,每一個一維數組長度相同,每一行按照從左到右順序遞增,每一列按照從上往下順序遞增。請完成一個函數輸入一個這樣的二維數組,和一個整數,判斷數組中是否含有該整數

說明白點就是檢索一個二維數組是否包含某一個元素。。。但當時我不明白的是:每一行按照從左到右順序遞增,每一列按照從上往下順序遞增
在這裏插入圖片描述
百度了一下就是:

let ary=[
[1,2,3,4],
[2,3,4,5],
[3,4,5,6]
]

顯而易見。。我是真沒想到那裏去。。。我還以爲很深奧。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章