n维数组展开成一维数组

xiaoxiao2021-02-28  56

var foo = [1,[2,3],['4',5,['6',7,[8]]],[9],10]; //方法1 //限制:数组项不能出现',',同时数组项全部变成了字符数字 foo.toString().split(',');//["1","2","3","4","5","6","7","8","9","10"] //方法2 //转换后数组项全部变成数字了 eval('[' + foo + ']');//[1,2,3,4,5,6,7,8,9,10] //方法3,使用ES6展开操作符 //写法太过麻烦,太过死板 [1, ...[2, 3], ...['4', 5, ...['6',7,...[8]]], ...[9], 10]; // [1, 2, 3, "4", 5, "6", 7, 8, 9, 10] //方法4 JSON.parse(`[${JSON.stringify(foo).replace(/\[|]/g, '')}]`);//[1,2,3,"4",5,"6",7,8,9,10] //方法5 const flatten = (ary) =>ary.reduce((a,b)=>a.concat(Array.isArray(b) ? flatten(b) : b), []); flatten(foo);//[1,2,3,"4",5,"6",7,8,9,10] //方法6 function flatten(a){ return Array.isArray(a) ? [].concat(...a.map(flatten)) : a; } flatten(foo);//[1,2,3,"4",5,"6",7,8,9,10]
转载请注明原文地址: https://www.6miu.com/read-2623773.html

最新回复(0)