code: function getItems(obj, path) {
          var pathItems = Array.isArray(path) ? path : path.split('.'),
              elm = obj,
              items = [];
  
          pathItems.some(function (key, index) {
              var isLastKey = (index + 1 === pathItems.length);
              elm = elm[key];
  
              if (elm === undefined) {
                  return false;
              }
  
              if (Array.isArray(elm)) {
                  elm.forEach(function (val) {
                      if (isLastKey) {
                          items.push(val);
                      } else {
                          items = items.concat(getItems(val, pathItems.slice(index + 1)));
                      }
                  });
                  return true;
              }
  
              // not array, so, object or primitive
              if (isLastKey) {
                  items.push(elm);
                  return true;
              }
  
              return false;
          });
  
          return items;
      }
docs: resolves an object path (eg. test.prop.x)
  if any of the properties is an array it will iterate
  and return all elements
  
  @param  {object} obj
  @param  {string} path
  @return {array}