js陣列扁平化

2021-10-09 08:35:13 字數 1496 閱讀 2280

**

陣列的扁平化,就是將乙個巢狀多層的陣列 array (巢狀可以是任何層數)轉換為只有一層的陣列。

var arr =[1

,[2,

[3,4

]]];

//扁平化之後:[1,2,3,4];

實現基本方式

1. reduce

遍歷陣列每一項,若值為陣列則遞迴遍歷,否則concat。

function

flatten

(arr),[

]);}

2. tostring & split

呼叫陣列的tostring方法,將陣列變為字串然後再用split分割還原為陣列

function

flatten

(arr)

)}

因為split分割後形成的陣列的每一項值為字串,所以需要用乙個map方法遍歷陣列將其每一項轉換為數值型

3. join & split

和上面的tostring一樣,join也可以將陣列轉換為字串

function

flatten

(arr)

)}

4. 遞迴

遞迴的遍歷每一項,若為陣列則繼續遍歷,否則concat

function

flatten

(arr)

else})

;return res;

}

5. 擴充套件運算子

//es6 增加了擴充套件運算子,用於取出引數物件的所有可遍歷屬性,拷貝到當前物件之中:

var arr =[1

,[2,

[3,4

]]];

console.

log(

.concat

(...arr));

// [1, 2, [3, 4]]

//我們用這種方法只可以扁平一層,但是順著這個方法一直思考,我們可以寫出這樣的方法:

// 改進

var arr =[1

,[2,

[3,4

]]];

function

flatten

(arr)

return arr;

}console.

log(

flatten

(arr)

)

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,...