循环遍历仅以特定模式开头的JSON对象
循环通过仅以特定模式开始的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); }); });
使用通配符 ,但没有成功。 我可以尝试搞乱if
语句,但我怀疑有一个更好的解决方案,我错过了。 谢谢。
如果你只对PrincipalTranslations
objects感兴趣,那么下面就可以了:
$.each(translations, function(term, value) { if (value.PrincipalTranslations !== undefined) { console.log(value.PrincipalTranslations); } });
的jsfiddle
我如何在对象中搜索属性,如下所示:
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);