例子:
.concat(1,2,3,4,5,[6,7])
.concat(...arr)
這樣寫就相當於把陣列打碎了。比如把[1,2,3,4,5,[6,7]]
打碎成1,2,3,4,5,[6,7]
然後呼叫.concat(1,2,3,4,5,[6,7])
結果就是[1, 2, 3, 4, 5, 6, 7]
這個是為了扁平化的專門的函式,可以扁平化自定義層的的陣列,語法如下
var newarray = arr.flat([depth]);
depth
是指定的深度,預設為1
例如:
const arr=[[1,2,3],[4,5,6]];
console.log(arr.flat()) // [1,2,3,4,5,6]
如果是多層的話,
const arr=[[1,2,3],[4,[5,6]]];
console.log(arr.flat()) // [1,2,3,4,[5,6]]
console.log(arr.flat(2)) // [1,2,3,4,5,6]
自然想到的就是遞迴了,遞迴需要乙個終點,這個終點就是下面的hasarray()
,如果這個陣列裡面的項不存在array物件,都是基本資料的話,就返回false
。否則返回true
。
// 判斷陣列裡面還有陣列嗎。(終點判定)
function hasarray(arr)
} return false
}// 扁平化乙個深度為一層陣列
function paiping(arr)
// 扁平化n層深度的陣列
function paiping2(arr)else
}
可以簡化一下:簡潔的一批,是吧,不解釋了,對照著上面看就好了。
function fn(arr)
} return arr
}
無論你的陣列多深,只要你tostring
一下,他們的結構就沒有了。
const arr = [[1, 2, 3], [4, [5, 6]]];
console.log(arr.tostring()) // "1,2,3,4,5,6"
這時候我們針對這個字串,用split分隔一下逗號,生成乙個單個字串陣列。
let arr1 = arr.tostring().split(',') // ["1", "2", "3", "4", "5", "6"
我們現在只需要遍歷一下,把他轉化成數字就行了。
let arrnum = arr1.map((val) => )
console.log(arrnum) // [1,2,3,4,5,6]
js 陣列扁平化
陣列扁平化是指將乙個多維陣列變為一維陣列 遍歷陣列arr,若arr i 為陣列則遞迴遍歷,直至arr i 不為陣列然後與之前的結果concat 遍歷陣列每一項,若值為陣列則遞迴遍歷,否則concat。function flatten arr 1,2,3,4,5 1,2,3,4,5 2.1.reduc...
js陣列扁平化
所謂陣列扁平化,就是將乙個二維或多維陣列轉換為一維陣列。比如將 1,2 3,4,5 轉化為 1,2,3,4,5 1 首先想到設定乙個空陣列,如果原陣列中的每一項不是陣列,直接push進去,如果是陣列,就與這個空陣列進行連線 實現 let flatarr arr else return result ...
JS 陣列扁平化
假如有乙個陣列 var arr 1,2,3,4 我們怎麼能把arr變成 1,2,3,4 呢?即讓多維陣列降維,轉換為只有一層的陣列。1.迴圈陣列 遞迴 function flatten arr else return result flatten arr 1,2,3,4 var arr 1 2,3,...