所以我可以看到问题,我只是不知道如何解决。我到过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] 删除。
我来说两句