Javascript递归搜索
Javascript recursive search
我在递归搜索中遇到了一些麻烦。我想返回找到ID的块。
这是我的数据:
{
"rows": [{
"columns": [{
"id": "iE1YMSahu",
"rows": [{
"columns": [{
"id": "VJBjVrfP"
}, {
"id": "NJb1234A",
"rows": [{
"columns": [{
"id": "VJBjVXXX"
}, {
"id": "NJb1234B"
}]
}]
}]
}]
}, {
"id": "EJnASD-v",
"rows": [{
"columns": [{
"id": "VJBjVYYY"
}]
}]
}]
}]
}
它应该返回
{
"id": "EJnASD-v",
"rows": [{
"columns": [{
"id": "VJBjVYYY"
}]
}]
}
但是它返回false。下面是我的代码:
function findColumnWithId(obj, id){
for(var i = 0; i < obj['rows'].length; i++){
for(var j = 0; j < obj['rows'][i]['columns'].length; j++){
if(obj['rows'][i]['columns'][j].id == id)
return obj;
if(obj['rows'][i]['columns'][j].hasOwnProperty('rows')){
var result = findColumnWithId(obj['rows'][i]['columns'][j], id);
if(typeof result !== false)
return result;
}
}
}
return false;
}
findColumnWithId(data, 'VJBjVYYY');
我真的不知道发生了什么事。它似乎没有迭代Json数据的最后一部分。这段代码实际上在我的6个用例中的5个中工作,这使得它更加奇怪。
删除if语句中的'typeof'修复了我的代码。
if(typeof result !== false)
相关文章:
- JavaScript 素数搜索无限递归
- 具有嵌套对象数组的 Javascript 对象的递归搜索函数
- jQuery递归搜索类的父元素
- 棱角分明,ng重复,带有某种递归搜索
- 在数据集中使用递归搜索 2D 数组模式
- 为什么递归单词搜索求解器缺少五个单词,却找到了其他 47 个单词
- 递归函数进行搜索
- 递归搜索 JSON 并删除某些子对象
- 什么'我的JavaScript搜索递归循环有问题
- 使用递归搜索对对象中的数组进行排序
- JavaScript-执行递归搜索,不保留值
- jstree,json,ajax:递归搜索和选择
- 递归搜索顶级匹配元素
- Mongodb递归搜索
- 根据属性名称递归搜索对象中的值
- 递归搜索子目录,忽略目录PHP
- 递归vs无递归在JS二进制搜索数组
- 在JavaScript中递归搜索对象
- 递归延迟文件系统搜索图像
- Javascript递归搜索