我有一个javascript对象,它将嵌套对象作为属性。我想遍历这个javascript对象,获取对象内每个对象的所有属性的列表。
我编写了一个函数来执行此操作,但由于某些原因,当我运行该函数时,我得到一个无限循环的0' s。有谁知道这个问题的原因和解决方案?
1. var cookieJar = new CookieContainer();
2. var url = baseUrl.AppendPathSegment("api/auth/login");
3. var request = url.EnableCookies();
3.5 request.Client = new FlurlClient();
4. ((HttpClientHandler)request.Client.HttpMessageHandler).CookieContainer = cookieJar;
5. var result = client.PostJsonAsync(new { UserName = userName, Password = password }).Result;
6. var cookies = cookieJar.GetCookies(new Uri(baseUrl));
7. _cookie = cookies[0];
答案 0 :(得分:2)
最后有一个字符串,此字符串被分隔为单个字符,其中一个索引为零。从该字符串开始,将获取位置0处的字符,并使用单个字符再次调用递归。
key value comment ----- ------------------- ----------- a { b: { c: "value " } } b { c: "value " } c "value " 0 "v" 0 "v" 0 "v" and so on
此字符的索引为零,依此类推。
为了防止这种习惯,您可以检查onyl truthy值(防止null
)和要遍历的对象类型。
var test = { a: { b: { c: 'value ' } } };
var traverse = function (object) {
for (var property in object) {
if (object.hasOwnProperty(property)) {
console.log(property);
if (object[property] && typeof object[property] === 'object') {
traverse(object[property]);
}
} else {
console.log('None');
}
}
}
traverse(test);