Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何遍历嵌套数据_Javascript_Loops_Iteration_Lodash - Fatal编程技术网

Javascript 如何遍历嵌套数据

Javascript 如何遍历嵌套数据,javascript,loops,iteration,lodash,Javascript,Loops,Iteration,Lodash,我必须遍历一个大数据集来收集javascript中节点的最后一个子元素 我需要在子详细信息中找到分支代码数组。 以下是我试图获得的输出: [100012011210210131013201] { “标题”:{ “第一级”:{ “详情”:{ “代码”:“01”, }, “二级”:[ { “详情”:{ “说明”:“{desc}”, }, “第三级”:{ “详情”:{ “代码”:“01”, }, “第四级”:[ { “详情”:{ “代码”:“11”, }, “分行”:{ “详情”:{ “代码”:“1

我必须遍历一个大数据集来收集javascript中节点的最后一个子元素

我需要在子详细信息中找到分支代码数组。 以下是我试图获得的输出:

[100012011210210131013201]

{
“标题”:{
“第一级”:{
“详情”:{
“代码”:“01”,
},
“二级”:[
{
“详情”:{
“说明”:“{desc}”,
},
“第三级”:{
“详情”:{
“代码”:“01”,
},
“第四级”:[
{
“详情”:{
“代码”:“11”,
},
“分行”:{
“详情”:{
“代码”:“1000”,
}
}
},
{
“详情”:{
“代码”:“12”,
},
“分行”:[
{
“详情”:{
“代码”:“1201”,
}
},
{
“详情”:{
“代码”:“1202”,
}
}
]
}
]
}
},
{
“详情”:{
“代码”:“100”,
},
“第三级”:[
{
“详情”:{
“代码”:“02”,
},
“第四级”:{
“详情”:{
“代码”:“21”
},
“分行”:{
“详情”:{
“代码”:“2101”,
}
}
}
},
{
“详情”:{
“代码”:“03”,
},
“第四级”:[
{
“详情”:{
“代码”:“31”,
},
“分行”:{
“详情”:{
“代码”:“3101”,
}
}
},
{
“详情”:{
“代码”:“32”,
},
“分行”:{
“详情”:{
“代码”:“3201”,
}
}
}
]
}
]
}
]
}
}
}
类似于:

function update (data, passedId, acc = []) {
    if (!_.isObject(data)) {
        return acc;
    }

    return _.reduce(_.values(data), (result, item) => {
        result = _.chain(item)
            .get(passedId)
            .thru(val => [val])
            .flatten()
            .compact()
            .map('Details.Code')
            .thru(vals => _.concat(result, vals))
            .value();
       return update(item, passedId, result);
    }, acc);
}

const res = update(data, 'Branch');
试试这个:

const obj={
“标题”:{
“第一级”:{
“详情”:{
“代码”:“01”,
},
“二级”:[{
“详情”:{
“说明”:“{desc}”,
},
“第三级”:{
“详情”:{
“代码”:“01”,
},
“第四级”:[{
“详情”:{
“代码”:“11”,
},
“分行”:{
“详情”:{
“代码”:“1000”,
}
}
},
{
“详情”:{
“代码”:“12”,
},
“分行”:[{
“详情”:{
“代码”:“1201”,
}
},
{
“详情”:{
“代码”:“1202”,
}
}
]
}
]
}
},
{
“详情”:{
“代码”:“100”,
},
“第三级”:[{
“详情”:{
“代码”:“02”,
},
“第四级”:{
“详情”:{
“代码”:“21”
},
“分行”:{
“详情”:{
“代码”:“2101”,
}
}
}
},
{
“详情”:{
“代码”:“03”,
},
“第四级”:[{
“详情”:{
“代码”:“31”,
},
“分行”:{
“详情”:{
“代码”:“3101”,
}
}
},
{
“详情”:{
“代码”:“32”,
},
“分行”:{
“详情”:{
“代码”:“3201”,
}
}
}
]
var res = [];
_.eachDeep(data,function(value,key){
  if(key=="Branch"){
    if(!_.isArray(value)){
      value = [value];
    }
    _.each(value,function(v){
      if(v.Details&&v.Details.Code){
        res.push(v.Details.Code);
      }
    });
  }
});