Full path of a json object

前端 未结 9 795
忘了有多久
忘了有多久 2021-01-12 06:02

I\'m trying to flatten an object where the keys will be the full path to the leaf node. I can recursively identify which are the leaf nodes but stuck trying to construct the

9条回答
  •  夕颜
    夕颜 (楼主)
    2021-01-12 06:58

    You might simply do as follows;

    var obj = {one: 1, two: {three: 3}, four: {five: 5, six: {seven: 7}, eight: 8}, nine: 9},
    flatObj = (o,p="") => { return Object.keys(o)
                                         .map(k => o[k] === null           ||
                                                   typeof o[k] !== "object" ? {[p + (p ? ".":"") + k]:o[k]}
                                                                            : flatObj(o[k],p + (p ? ".":"") + k))
                                         .reduce((p,c) => Object.assign(p,c));
                          };
    console.log(flatObj(obj));

提交回复
热议问题