多維陣列轉一維陣列

2022-08-27 22:00:17 字數 2012 閱讀 2751

二維陣列轉一維陣列

利用es6擴充套件運算子

var arr = [1,2,[3,4],5,[6,7]];

console.log(.concat(...arr));

//結果 [1, 2, 3, 4, 5, 6, 7]

var arr = [1,2,[3,4],5,[6,7]];

多維陣列轉一維陣列

使用es6新增的flat 和 flatmap方法 【新增時間 2019-9-26】

es2018 為陣列例項新增了flat 、flatmap 方法,用於將二維 或 多為陣列 降維 成一維陣列

flat 方法預設沒有引數時只會降維降一層。  可以指定降維的次數

flat 方法不改變原陣列

var arr = [1,[2,[3]]];

console.log(arr.flat());

//結果  [1, 2, array(1)]

【注】如果想直接降為一維陣列flat引數中填寫infinity  

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

console.log(arr.flat(infinity));

//結果   [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

flatmap()方法,引數是乙個**函式,類似map方法的使用,陣列的每個元素執行一次**函式,然後對返回的陣列執行flat()方法,只降一次維

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

let result = arr.flatmap(item=>

else

})//結果  [1, 2, 3, 4, 5, array(2), 8, array(2)] 【只能降一次維】

不使用es6的方法 

方法一:遍歷每乙個元素

1

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

2var arr2 =;

3function

toarr(arr)else

11})

12 } else

return arr2

15 }

toarr(arr)

console.log(arr2);

方法二:擴充套件運算子

//

只要有乙個元素有陣列,那麼迴圈繼續

while

(ary.some(array.isarray))

方法三:replace + split

let arr = [1, [2, [3, [4, 5]]], 6];

let str =json.stringify(arr)

arr = str.replace(/(\[|\])/g,"").split(",")

方法四:replace + json.parse

let arr = [1, [2, [3, [4, 5]]], 6];

let str =json.stringify(arr);

str = str.replace(/(\[|\])/g,"");

str = '[' + str + ']';

arr = json.parse(str)

JS多維陣列轉一維陣列

const arr 1 2 3 4 5,6 function flat array else return flata console.log flat arr 1,2,3,4,5,6 const arr 1 2 3 4 5,6 function flat a else const flatarr ...

js中多維陣列轉一維

法一 使用陣列map 方法,對陣列中的每一項執行給定函式,返回每次函式呼叫的結果組成的陣列。let arr 1,2,3,4 5 6 function onedimensionalarray arr return arr2 console.log onedimensionalarray arr let...

多維陣列變一維陣列

判斷是否是陣列 let isarr arr arr instanceof array 判斷是否一維陣列 let istdim arr arr.reduce o1,o2 o1 isarr o2 true 多維陣列變一維陣列function name return a console.log name ...