diff --git a/lib/org-mode-parser.js b/lib/org-mode-parser.js index 4e79c04..c09cdaf 100644 --- a/lib/org-mode-parser.js +++ b/lib/org-mode-parser.js @@ -810,6 +810,19 @@ var OrgQuery=(function () }); return new OrgQuery(nodes); }; + OrgQuery.prototype.selectProperties=function(propNames, orFlag = false){ + var nodes = []; + _.each(this.allNodes, function(n){ + var names = Object.keys(n.properties); + if (_.isString(propNames)) { + names.indexOf(propNames) > -1 && nodes.push(n); + } else if (_.isArray(propNames)) { + var method = orFlag ? 'some' : 'every'; + propNames[method](name => names.indexOf(name) > -1) && nodes.push(n); + } + }); + return new OrgQuery(nodes); + }; // Private manipulation function