如何用js遍历一个对象的所有路径?(语言-javascript)

let message={name:{name1:11,name2:22},age:33}
最终的结果是obj[name/name1]=11 obj[name1/name2]=22 obj[age]=33
有没有知道的告诉一下


function walk(data) {
  let result = {}

  function walkObj(obj = {}, preKey = '') {
    console.log(preKey)
    Object.keys(obj).map(k => {
      if (toString.call(obj[k]) === '[object Object]') {
        return walkObj(obj[k], preKey ? [preKey, k].join('/') : k)
      }

      Object.assign(result, {
        [preKey ? [preKey, k].join('/') : k]: obj[k]
      })
    })
  }
  walkObj(data)

  return result
}
let message={name:{name1:11,name2:22},age:33}

function loopObj(obj,reStr){// 递归调用
    let returnObj = {};
    for(let key  in obj){
        if(obj[key] instanceof Object){
            loopObj(obj[key]);
        }else{
            console.log(reStr+'/'+key+']='+obj[key]);

        }
        if(JSON.stringify(returnObj) !== '{}'){
            return returnObj
        }
    }
}
for(let key  in message){
    if(message[key] instanceof Object){
        let reStr = 'obj['+key;
        loopObj(message[key],reStr);
    }else{
        console.log('obj['+key+']='+message[key])
    }

}

可以试下上述代码