JS通过嵌套JSON结构搜索深度增加的时间

时间:2014-08-05 20:20:10

标签: javascript json

我正在尝试构建一个算法,如果我有一个3层嵌套的JSON结构,但将来这个结构可能更深。像5层。我怎么能解释这个?我知道如何使用固定的已知图层,而不是增加图层。

1 个答案:

答案 0 :(得分:0)

只是为了扩展Juvian所说的(使用递归)

递归本质上是一个重复自身的函数。对于JSON数据,您将验证属性是对象还是数组,并递归调用遍历JSON的函数。

我没有代码或数据可供使用,所以这是一个非常简单的例子

var data = [
  {
    obj: {
      prop: 'some value',
      prop2: [
        'some value again'
      ]
    },
    value: 'string'
  }
];

function traverse(d) {
  var type = Object.prototype.toString.call(d),
      max,
      i;

      if(type === 'object Object') {
        max = Object.keys(data).length; // for objects
      } else if (type === 'object Array') {
         max = d.length; // for arrays
      }

  for (i = 0; i < max; i++) {
    if (typeof d[i] === 'object') {
      // continue traversing 1 level deeper
      traverse(d[i]);
    } else {
      // do something with the value
    }
  }
}

traverse(data);