js多层对象取某个值

$(function () {  
  var \_param = {  
    'body': {  
      'name': "周杰伦",  
      'list': \[  
        {  
          'age': '20'  
  }  
      \],  
      'in': {  
        'in\_name': '姓名',  
        'in\_1': {  
          'obj\_name': '张三',  
          'in\_2': {  
            'id': '111'  
  }  
        }  
      }  
    },  
    'result': {  
      'code': '10000',  
      'msg': '成功'  
  }  
  }  
  var \_val = findOutParam(\_param, 'id')  
  console.log(\_val)  
})  
  
function findOutParam(i\_item, fixed\_code) {  
  var fixed\_val = ''  
  for (var j in i\_item) {  
    var j\_item = i\_item\[j\]  
    try {  
      if (typeof JSON.parse(j\_item) == "object") {  
        j\_item = JSON.parse(j\_item)  
      }  
    } catch (e) {  
    }  
    if (typeof j\_item == 'object' || Array.isArray(j\_item)) {  
      fixed\_value = findOutParam(j\_item, fixed\_code)  
    } else {  
      if (j == fixed\_code) {  
        if (j\_item === 0) {  
          j\_item = '0'  
  }  
        fixed\_val = j\_item  
        flag = false  
 break  }  
    }  
  }  
  return fixed\_val  
}

通过递归的方式取值,但是取到值后,循环会继续执行它的父级循环,导致fixed_val 被重置了,求大神帮忙看看,当条件满足后怎么终止所有循环### 问题描述

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

待解决 悬赏分:40 - 离问题结束还有 413天18小时28分9秒
反对 0举报 0 收藏 0

我来回答

回答2