code: function query(q) {
    var filter = Object.keys(q);
    var isValid;
    var valid;
    var val;
  
    return this.reduce((list, ps) => {
      isValid = filter.every(key => {
        val = q[key];
        valid = true;
  
        if (typeof val === 'string') {
          if (val.indexOf('<') > -1) {
            valid = ps[key] < cleanValue(val, '<');
          }
  
          if (valid && val.indexOf('>') > -1) {
            valid = ps[key] > cleanValue(val, '>');
          }
  
          if (valid && val.indexOf('~') > -1) {
            valid = ps[key].indexOf(q[key].replace('~', '')) > -1;
          }
        } else {
          valid = ps[key] === val;
        }
  
        return valid;
      });
  
      if (isValid) list.push(ps);
  
      return list;
    }, []);
  }
docs: Return elements that match a certain query:
  
  @example
  list.query({
  user: 'root',
  cpu: '>10',
  mem: '>5 <10',
  command: '~chrome'
  })
  
  @param  {Object} q
  @return {Array}