js陣列扁平化處理

2021-10-09 08:37:18 字數 1675 閱讀 3981

陣列扁平化就是將乙個多維陣列轉換為乙個一維陣列

實現基本方式

1、對陣列的每一項進行遍歷。

2、判斷該項是否是陣列。

3、如果該項不是陣列則將其直接放進新陣列。

4、是陣列則回到1,繼續迭代。

5、當陣列遍歷完成,返回這個新陣列。

array.prototype.

flatten

=function()

else

}return resultarr;

}var arr=[1

,2,3

,[4,

5,'hello',[

'world',9

,666]]

]console.

log(arr.

flatten()

)//[1, 2, 3, 4, 5, "hello", "world", 9, 666]

array.prototype.

flatten

=function()

,);}

function

*itertree

(tree)

}else

}let arr1 =[1

,2,[

'a',

'b',

['中'

,'文',[

1,2,

3,[11

,21,31

]]]]

,3];

let list=

for(

const x of

itertree

(arr1)

) console.

log(list)

;//[1, 2, "a", "b", "中", "文", 1, 2, 3, 11, 21, 31, 3]

let arr1 =[1

,2,[

'a',

'b',

['中'

,'文',[

1,2,

3,[11

,21,31

]]]]

,3];

console.

log( arr1.

flat

(infinity))

;

//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 多維陣列扁平化 處理

多維陣列扁平化 var arr 1,2,3,4,5,6,7 9,10,11 1 方法一 迴圈陣列 遞迴呼叫 function steamroller arr return arr console.log steamroller2 arr 3 方法三 reduce方法 當陣列中還有陣列的話,遞迴呼叫s...

js中陣列扁平化處理

什麼是陣列扁平化?陣列扁平化就是將乙個多維陣列轉換為乙個一維陣列 實現基本方式 1 對陣列的每一項進行遍歷。2 判斷該項是否是陣列。3 如果該項不是陣列則將其直接放進新陣列。4 是陣列則回到1,繼續迭代。5 當陣列遍歷完成,返回這個新陣列。let arr1 1,2,a b 中 文 1,2,3,11,...

JS 多維陣列扁平化 處理

author mr.live date 2018 01 23 14 55 22 last modified by mr.live last modified time 2018 01 23 14 56 20 多維陣列扁平化 var arr 1,2,3,4,5,6,7 9,10,11 1 方法一 迴圈...