【问题标题】:Javascript- Iterate over nested objects, getting values and chained keys [duplicate]Javascript-遍历嵌套对象,获取值和链接键[重复]
【发布时间】:2013-06-18 08:11:50
【问题描述】:

拥有对象:

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.nested31 - 我太嵌套了 Nested1.nested21.nested32 - 我太嵌套了

等等

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

【问题讨论】:

  • 是,但没有指定如何获取值和“链式”键

标签: javascript object recursion nested


【解决方案1】:

知道了

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, []));

【讨论】:

    猜你喜欢
    • 2020-10-08
    • 2011-12-26
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2014-09-23
    • 2018-05-10
    相关资源
    最近更新 更多