title: How to reuse functions in an AngularJS factory?
body: <p>I have an AngularJS factory for some common local storage manipulation. It's a common set of functions against different variables. I am constructing it so that the functions are repeated depending on which variable needs to be manipulated. Likely not an elegant way to go about this so open to options.</p>
  
  <p>The factory looks as follows. Is there a way to reuse functions depending on the variable without so much code bloat?</p>
  
  <pre><code>angular.module('app.datastore', [])
  
    .factory('DataStore', function() {
  
      var venue = angular.fromJson(window.localStorage['venue'] || '[]');
      var prize = angular.fromJson(window.localStorage['prize'] || '[]');
  
      function persist_venue() {
          window.localStorage['venue'] = angular.toJson(venue);
      }
  
      return {
  
        list_venue: function () {
          return venue;
        },
  
        get_venue: function(venueId) {
          for (var i=0; i&lt;venue.length; i++) {
            if (venue[i].id === venueId) {
              return venue[i];
            }
          }
          return undefined;
        },
  
        create_venue: function(venueItem) {
          venue.push(venueItem);
          persist_venue();
        },
  
        list_prize: function () {
          return prize;
        },
  
        get_prize: function(prizeId) {
          for (var i=0; i&lt;prize.length; i++) {
            if (prize[i].id === prizeId) {
              return prize[i];
            }
          }
          return undefined;
        },
  
        create_prize: function(prizeItem) {
          venue.push(prizeIem);
          persist_prize();
        }
      };
  
    });
  </code></pre>