javascript - 当他的深度未知时,如何在 JavaScript 对象中找到键?

标签 javascript object

如果我有一个像这样的 javascript 对象:{a : { b: { c: { ... }}}},我如何才能找到是否有 'x' 键对象及其值(value)是什么?

最佳答案

只要他们不担心循环引用,您就可以执行以下操作

function findX(obj) { 
  var val = obj['x'];
  if (val !== undefined) {
    return val;
  }
  for (var name in obj) {
    var result = findX(obj[name]);
    if (result !== undefined) {
      return result;
    }
  }
  return undefined;
}

注意:这将直接在此对象或其原​​型链中搜索属性“x”。如果您特别想将搜索限制在这个对象上,您可以执行以下操作

if (obj.hasOwnProperty('x')) {
  return obj['x'];
}

并为 findX 的递归调用重复模式

关于javascript - 当他的深度未知时,如何在 JavaScript 对象中找到键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7437388/

相关文章:

javascript - 使用 Javascript/JQuery 迭代 JSON 响应

PHP - 在对象内调用函数会导致错误 : 'Call to a member function query() on integer in'

javascript - 为什么这是 JavaScript 中的内存泄漏?

JavaScript:在 3 个元素之间切换,只有一个处于事件状态

javascript - Chrome 扩展 cookies.getAll 不起作用

javascript - 将参数作为函数调用的参数传递给函数

c++ - OpenCV undefined reference 库中我自己的方法

javascript - 当卡住对象发生突变时,Object.freeze 在严格模式下不会引发异常

javascript - 发出传递函数返回以扩展对象的问题

javascript - 将对象数组转换为数组,但格式不同。