Javascript-迭代嵌套对象,获取值和链式键

Javascript- Iterate over nested objects, getting values and chained keys

本文关键字:获取 迭代 嵌套 对象 Javascript-      更新时间:2023-09-26

拥有对象:

Nested1: {
    "nested21": {
        "nested31": {
            value: "im sooo nested"
        } ,
        "nested32": {
            value: "im sooo nested"
        }
    },
    "nested22": {
        "nested31": {
            value: "im sooo nested"
        } ,
        "nested32": {
            value: "im sooo nested"
        }
    }
}

如果可以有一个未定义数量的嵌套对象,我想得到这样的东西:

<>之前Nested1.nested21。巢——我太巢了Nested1.nested21。Nested32 -我太巢了之前

等等

我正在考虑一个递归函数,但如何在内存中保持链接键?

明白了

var obj, traverse;
obj = {
  a: {
    b: 1,
    c: 2
  },
  d: {
    e: 3,
    f: 4
  }
};
traverse = function(node, path) {
  var pairs;
  if (!(pairs = _(node).pairs()).length) {
    return [
      {
        keys: path,
        value: node
      }
    ];
  } else {
    return [].concat.apply([], _(pairs).map(function(kv) {
      return traverse(kv[1], path.concat(kv[0]));
    }));
  }
};
console.log(traverse(obj, []));