循环通过仅以某种模式开头的JSON对象的正确/惯用方法是什么?
示例:说我有像
这样的JSON{
"END": true,
"Lines": "End Reached",
"term0": {
"PrincipalTranslations": {
// nested data here
}
},
"term1": {
"PrincipalTranslations": {
// more nested data here
}
}
}
我只想访问PrincipalTranslations
对象,我尝试使用:
$.each(translations, function(term, value) {
$.each(term, function(pos, value) {
console.log(pos);
});
});
哪个不起作用,可能是因为我无法遍历END
和Lines
个对象。
我试着用类似
的东西$.each(translations, function(term, value) {
$.each(TERM-THAT-STARTS-WITH-PATTERN, function(pos, value) {
console.log(pos);
});
});
使用wildcards,但没有成功。我可以尝试搞砸if
语句,但我怀疑有一个更好的解决方案,我错过了。感谢。
答案 0 :(得分:3)
如果您只对PrincipalTranslations
- 对象感兴趣,请按照以下方法操作:
$.each(translations, function(term, value) {
if (value.PrincipalTranslations !== undefined) {
console.log(value.PrincipalTranslations);
}
});
答案 1 :(得分:1)
如何在对象中搜索属性,如下所示:
var obj1 ={ /* your posted object*/};
// navigates through all properties
var x = Object.keys(obj1).reduce(function(arr,prop){
// filter only those that are objects and has a property named "PrincipalTranslations"
if(typeof obj1[prop]==="object" && Object.keys(obj1[prop])
.filter(
function (p) {
return p === "PrincipalTranslations";})) {
arr.push(obj1[prop]);
}
return arr;
},[]);
console.log(x);