通过Javascript对象的递归循环

刘易斯·摩根斯

所以我可以看到问题,我只是不知道如何解决。我到过interwebz!

当条件不匹配时,我不知道应该如何移动到对象树中的下一个条目。目前,我只是重载了调用堆栈。

const myObject = {
  x: {
    y: {
      z: {
        e: 'ddfg'
      }
    }
  }
};
const param = Object.keys(myObject);

function traverse(target) {
  for (const key in target) {
    if (target[key] !== 'e') {
      traverse(target[key]);
    } else {
      console.log(key, target[key]);
    }
  }
}

traverse(param);

如果您能伸出援助之手,那就太好了!

缺口

你有几个问题;你应该在横越越过对象,而不是它的钥匙,你应该检查,如果key === 'e',没有target[key] !== 'e'另外,target[key]在遍历对象之前,应检查该对象是否为对象:

const myObject = {
  x: {
    y: {
      z: {
        e: 'ddfg'
      }
    }
  }
};

function traverse(target) {
  for (const key in target) {
    if (key !== 'e' && typeof target[key] === 'object') {
      traverse(target[key]);
    } else {
      console.log(key, target[key]);
    }
  }
}

traverse(myObject);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章