javascript – json对象的完整路径

前端之家收集整理的这篇文章主要介绍了javascript – json对象的完整路径前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图压扁一个对象,其中键将是叶节点的完整路径.我可以递归地识别哪些是叶节点但是试图构建整个路径.

样本输入:

{
  one: 1,two: {
    three: 3
  },four: {
    five: 5,six: {
      seven: 7
    },eight: 8
  },nine: 9
}

输出

{
  one: 1,'two.three': 3,'four.five': 5,'four.six.seven': 7,'four.eight': 8,nine: 9
}

解决方法

您可以使用递归的approch并收集对象的键.该提议也在寻找数组.
function getFlatObject(object) {
    function iter(o,p) {
        if (Array.isArray(o) ){
            o.forEach(function (a,i) {
                iter(a,p.concat(i));
            });
            return;
        }
        if (o !== null && typeof o === 'object') {
            Object.keys(o).forEach(function (k) {
                iter(o[k],p.concat(k));
            });
            return;
        }
        path[p.join('.')] = o;
    }

    var path = {};
    iter(object,[]);
    return path;
}

var obj = { one: 1,two: { three: 3 },four: { five: 5,six: { seven: 7 },eight: 8 },nine: 9 },path = getFlatObject(obj);
	
console.log(path);
原文链接:https://www.f2er.com/js/159014.html

猜你在找的JavaScript相关文章