二維陣列轉一維陣列
利用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的方法
方法一:遍歷每乙個元素
1var 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 ...