数组扁平化
//扁平化
function flat(arr) {
//验证arr数组中,还有没有深层数组[1,2,[3,4]]
const isDeep = arr.some(item => item instanceof Array)
if(!isDeep) {
return arr
}
const res = Array.prototype.concat.apply([], arr)
return flat(res)//递归拍平
}
对象扁平化
flatten(obj) {
var comType=['object','array'];
function plat(o,prekey,resobj){
prekey=prekey?prekey+'.':'';
var keys=Object.keys(o);
keys.forEach(function(item){
var v=o[item];
var type=typeof v;
if(v && comType.indexOf(type) != -1){
plat(v,prekey+item,resobj);
}else{
resobj[prekey+item]=v;
}
})
}
var result={};
plat(obj,'',result);
console.log(result);
}
},