JS搜索通过一个嵌套的JSON结构,深度增加随着时间的推移

JS Search Through a Nested JSON Structure where Deepness Increases Overtime

本文关键字:增加 深度 结构 时间 JSON JS 嵌套 一个 搜索      更新时间:2023-09-26

我试图建立一个算法,如果我有一个3层嵌套JSON结构,但在未来这个结构可能更深。大概有5层。我该怎么解释呢?我知道如何使用固定的已知层,但不知道如何使用增加的层。

只是扩展一下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);