首页  >  文章  >  web前端  >  如何递归迭代嵌套的 JavaScript 对象?

如何递归迭代嵌套的 JavaScript 对象?

DDD
DDD原创
2024-11-02 02:25:31420浏览

How to Recursively Iterate Through Nested JavaScript Objects?

迭代嵌套的 JavaScript 对象[重复]

问题:
如何递归地迭代深度嵌套的 JavaScript 对象以检索基于给定标识符的特定对象(例如“标签”属性)?

解决方案:

带有递归的原始答案

深度迭代使用递归的嵌套对象:

<code class="js">const iterate = (obj) => {
  Object.keys(obj).forEach((key) => {
    console.log(`key: ${key}, value: ${obj[key]}`);

    if (typeof obj[key] === 'object' && obj[key] !== null) {
      iterate(obj[key]);
    }
  });
};

console.log(iterate({ ...cars }));</code>

2023 更新:非递归方法

对于非递归方法:

<code class="js">const iterate = (obj) => {
  const stack = [obj];
  while (stack?.length > 0) {
    const currentObj = stack.pop();
    Object.keys(currentObj).forEach((key) => {
      console.log(`key: ${key}, value: ${currentObj[key]}`);
      if (typeof currentObj[key] === 'object' && currentObj[key] !== null) {
        stack.push(currentObj[key]);
      }
    });
  }
};

console.log(iterate({ ...cars }));</code>

在这两种方法中,关键每个嵌套对象的值和值都会记录到控制台。

以上是如何递归迭代嵌套的 JavaScript 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn