面试题:将JSON数据扁平化
//原数据
let obj = {
a: 1,
b: {c: 2,d: 3},
e: [1, 2, 3],
name:"张三",
f: [{g: 1}, {h: 2}],
q:[{a:1,b:[2,3]}],
p:null,
r:[2,[3,4]]
}
//目标格式
{
a: 1,
'b.c': 2,
'b.d': 3,
'e[0]': 1,
'e[1]': 2,
'e[2]': 3,
name: '张三',
'f[0].g': 1,
'f[1].h': 2,
'q[0].a': 1,
'q[0].b[0]': 2,
'q[0].b[1]': 3,
'r[0]': 2,
'r[1][0]': 3,
'r[1][1]': 4
}
实现一:
function typeJudge(item) {
if(Object.prototype.toString.call(item) === '[object Array]'){
return 'Array';
}
else if(Object.prototype.toString.call(item) === '[object Object]'){
return 'Object';
}
else {
return 'Basic';
}
}
function objectFlat(obj = {}) {
let res = {};
function f