对于一个 JS 对象,value 值可以是 Object 类型,因此可能会有很深的嵌套层次。现在要求把 JS 对象打平为一层,key 值使用 . 拼接,示例如下:
原始对象:
{
x : {
a : 'zxc',
b : 'ert'
},
y : {
z : 1234
},
arr : [
2,3
]
}
打平后:
{
'x.a' : 'zxc',
'x.b' : 'ert',
'y.z' : 1234,
'arr.0' : 2,
'arr.1' : 3
}
原始对象:
{
x : {
y: {
z: 12,
u: 15
}
}
}
打平后:
{
'x.y.z': 12,
'x.y.u': 15
}
要求:函数命名为 flatObj,输入原对象,返回打平后新的对象。
//obj 是原对象,fobj 是打平后的对象。
let fobj = flatObj(obj)
提示:使用递归实现,typeof 和 Array.isArray 检测数组类型。