참고이 용액 중첩 배열을 횡단하도록 업데이트되었습니다.
이 문제에 대한 폐쇄를 원한다. 그래서 나는 그것을 풀기 위해 약간의 시간을 보냈다. 심지어 당신은 그의 디버깅 도구로 지금도 놀고있을 수있다.
이 문제에 대한 나의 접근 방식은 instanceof
API를 사용하여 해결했습니다.
참조 :
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/instanceof
내가
root.hasOwnProperty(i)
if (root[i] !== null && root[i] !== undefined && typeof(root[i] == 'object'))
처럼 그 긴 호흡 검사를 할 여분의 코드에 넣어하지 않아도 그런 식으로 예 :
var data = {
person: {
firstName: 'Mary',
likes: {
food: "apple",
drinks: "water",
d: null,
x : {
y: "z",
ddd: [
{ bbb: "lol"},
{ PPP: "lol2"}
]
},
o: undefined
}
},
color: 'blue'
};
function walk(root) {
for (let property in root) {
console.log(property);
if (root[property] instanceof Array)
root[property].forEach(item => { walk(item); });
else if (root[property] instanceof Object)
walk(root[property]);
// Extend else if statement to handle customize structures appropriately.
}
}
walk(data);
출력 :
person
firstName
likes
food
drinks
d
x
y
ddd
e
bbb
PPP
o
color
열기 디버거와 그것을 찾을 수 있습니다. – zerkms
'typeof (root [i] == 'object')'- 어, 확실하니? – Bergi
@Bergi는 디버거를 사용하는 방법을 배울 수 있습니다 .-)하지만, 10 초 안에 이미 게시 된 답변 일 것입니다. – zerkms