题解 | #数组扁平化#
查找重复元素
http://www.nowcoder.com/practice/871a468deecf453589ea261835d6b78b
第一种方法
使用递归
- 建立一个空数组,用于存放所有的元素
- 对参数数组进行遍历,判断其是否为
number
类型 - 如果为number类型则直接加在空数组中,不为numer类型则直接进行递归运算
const _flatten = arr => {
// 补全代码
let minearr = []
function aaa(arr) {
for (let i = 0; i < arr.length; i++) {
if (typeof arr[i] == 'number') {
console.log(arr[i]);
minearr.push(arr[i])
} else {
aaa(arr[i])
}
}
}
aaa(arr)
return minearr;
}
第二种方法
使用reduce配合递归实现
reduce是一个累加器,result为初始值或者计算之后的值,item为当前值
const _flatten = arr => {
return arr.reduce((result, item) => {
return result.concat(Array.isArray(item) ? _flatten(item) : item)
}, [])
}