扁平化就是去除过多繁重的修饰,把数据本身突出来,说到扁平化就想到数组的扁平化。数组扁平化是指将多维数组转化为一维。
那么怎么实现数组扁平化呢?主要记录一下自己看的两种方式
第一种:
var arr = [1,2,[3,[4,5]]]
function isArray(obj){
if(Object.prototype.toString.call(obj) === [Object Array]
return true
}else{
return false
}
}
function flatten(arr){
var resArr = []
var len = arr.length
for(let i = 0; i < len; i++){
if(isArray(arr[i]){ //数组中仍然包含数组
resArr = resArr.concat(flatten(arr[i])) //递归,再将新生成的数组与之前的数组拼接起来
}else{
resArr.push(arr[i])
}
}
return resArr
}
第二种:
var arr = [1,2,[3,[4,5]]]
var arr1 = arr.toString() //toString将数组转化为字符串,逗号连接
var arr2 = arr1.split(',') //字符串之间用逗号分割,输出一个字符串数组['1'