JS搜索通过一个嵌套的JSON结构,深度增加随着时间的推移
JS Search Through a Nested JSON Structure where Deepness Increases Overtime
我试图建立一个算法,如果我有一个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);
相关文章:
- JQuery使计数器每次更改时都会增加
- 如何增加同时按键总数
- 如何使用css动画从中心增加边界线
- 在不知道深度或父属性的情况下从对象中删除属性
- 递归深度比较
- JavaScript:单击时相对于父级增加变量值
- PaperJS-增加矢量幅度
- 如何每10.6秒从时间戳增加+1
- 如何通过ajax增加/减少PHP变量值并重新加载函数
- 如何对映射插件创建的敲除对象进行深度复制
- 使用Jquery增加选项卡
- 通过JSON中的值增加
- 根据元素高度和宽度的百分比变化增加或减少字体大小
- 如何制作侧边栏以增加其完整长度
- 3d上的深度比例错误
- 在SoundCloud中,使用JavaScript SDK流式传输曲目是否会增加该曲目的playback_count
- 将对象从另一个不可变的Map分配给Map是否意味着深度克隆
- BatmanJS:深度嵌套路由
- Chai深度包含了对嵌套对象的断言
- JS搜索通过一个嵌套的JSON结构,深度增加随着时间的推移