算法题目:
已知如下数组:
1
| var arr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10];
|
要求1: 将多维数组降成一维数组
方法一: es6的flat()
方法二: 投机取巧
1
| arr.toString().split(',');
|
或者
方法三: 递归
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| function flat (arr) { let result = []; function _flat (arr) { arr.map(function (value, index) { if (Array.isArray(value)) { _flat(value) }else { result.push(value) } }) } _flat(arr) return result; } flat(arr)
|
简写:
1
| let flat = arr => [].concat(...arr.map(v => Array.isArray(v) ? flat(v) : v))
|