Collection in JS

by Ivan Gerasimenko

JavaScript

console.clear();
var log = function(msg) { console.log(msg); }

function Dictionary() {
  var buf = {};
  return {
      add: function(name, value) {
          buf[name] = value;
      },
      remove: function(name) {
          delete buf[name];
      },
      getItemValue: function(name) {
          return buf[name];
      },
      getString: function() {
          var result = '';
          for(var prop in buf) {
              result += prop + ": " + buf[prop] + "; ";
          }
          return result;
      },
      count: function() {
          var i = 0;
          for (var prop in buf) {
              i++;
          }
          return i;
      },
      forEach: function(action) {
          for (var prop in buf) {
              buf[prop] = action(buf[prop]);
          }
      }
  }
}

var dict = Dictionary();
dict.add('Pit', 'split');
dict.add('Mol', 5);
dict.add('Fin', 7);
log( dict.getString() );
log( 'count = ' + dict.count() );

log('\nRemove an existing element');
dict.remove('Mol');
log( dict.getString() );
log( 'count = ' + dict.count() );

log('\nRemove not existing element');
dict.remove('Mol');
log( dict.getString() );
log( 'count = ' + dict.count() );

log( '\nPit = ' + dict.getItemValue('Pit') );

dict.forEach(function(elem) { return elem + '+a' });
log( '\n' + dict.getString() );