算法:多层数组转化为一层

题目

给定一个数组,将多层数组转化为一层。

注意,数组元素不一定是数字,有可能为对象或字符串。

测试用例

1
2
1. ['1',[2,3],-1] // ['1',2,3,-1]
2. ['1',[2,3],{a:-1}] // ['1',2,3,{a:-1}]

解法

思路

  • 遍历数组,取出元素放入新数组,若元素为数组则递归取出

算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* @param {array} arr
* @param {array} res
* @return {array}
*/
var flatten = function (arr, res) {
for(let i in arr) {
if(arr[i] instanceof Array) {
test(arr[i],res)
} else {
res.push(arr[i]);
}
}
return res;
}
-------------本文结束 感谢您的阅读-------------