如何压平一个json

var obj={
        a:1,
        b:{
            b1:2,
            b2:3
        },        c:{            c1:4,            c2:{                c21:5,                c21:6
            }
        }
    };    //写一个函数返回下列结果
    //return json={a:1,b.b1:2,b.b2:3,c.c1:4,c.c2.c21:5,c.c2.c22:6};

哪位大神知道这种数据结构怎么整,应该是用到递归,不过那个key值是怎么组出来的,帮帮忙,我现在想写一个方法碰到这种数据结构可以做扁平化处理


慕后森
浏览 1399回答 2
2回答

慕桂英3389331

看看这个(刚刚写错了........)function outerFn (param){    var result = {}    function fn (obj,prefix) {      for (key in obj){       let fullKey = prefix?(prefix+'.'+key):key;        if (typeof obj[key]==='object'){             fn(obj[key],fullKey)         }else{           result[fullKey] = obj[key]         }       }     }     fn(param)    return result; }

ABOUTYOU

function fn(data) {  const res = {};  function _h(obj, p = '') {    if (typeof obj === 'object' || obj === null)      Object.keys(obj).forEach(key => _h(obj[key], p ? p + '.' + key : key));    else res[p] = obj;   }   _h(data);  return res; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript