js算法题将对象扁平化得到结果

问题遇到的现象和发生背景

对象扁平化

用代码块功能插入代码,请勿粘贴截图
function flatten(obj){
    // your code
}
const resoult = flatten({
   a: {
        b: 1,
        c: 2,
        d: {
            e: 5
        }
     },
    b: [ 1,  3,  {a: 2,  b: 3} ],
    c: 3,
    d: [{
        c: 'd-c',
        d: {
          e: 'd-d-e'
        }
  }]
 });

console.log(resoult)
运行结果及报错内容

{
  "a.b": 1,
  "a.c": 2,
  "a.d.e": 5,
  "b[0]": 1,
  "b[1]": 3,
  "b[2].a": 2,
  "b[2].b": 3,
  "c": 3,
  "d[0].c": "d-c",
  "d[0].d.e": "d-d-e"
}


我想要达到的结果

{
"a.b": 1,
"a.c": 2,
"a.d.e": 5,
"b[0]": 1,
"b[1]": 3,
"b[2].a": 2,
"b[2].b": 3,
"c": 3,
"d[0].c": "d-c",
"d[0].d.e": "d-d-e"
}