code: function map(dependentKey, callback) {
        var options = {
          addedItem: function(array, item, changeMeta, instanceMeta) {
            var mapped = callback.call(this, item, changeMeta.index);
            array.insertAt(changeMeta.index, mapped);
            return array;
          },
          removedItem: function(array, item, changeMeta, instanceMeta) {
            array.removeAt(changeMeta.index, 1);
            return array;
          }
        };
  
        return arrayComputed(dependentKey, options);
      }
docs: Returns an array mapped via the callback
  
  The callback method you provide should have the following signature.
  `item` is the current item in the iteration.
  `index` is the integer index of the current item in the iteration.
  
  ```javascript
  function(item, index);
  ```
  
  Example
  
  ```javascript
  var Hamster = Ember.Object.extend({
  excitingChores: Ember.computed.map('chores', function(chore, index) {
  return chore.toUpperCase() + '!';
  })
  });
  
  var hamster = Hamster.create({
  chores: ['clean', 'write more unit tests']
  });
  
  hamster.get('excitingChores'); // ['CLEAN!', 'WRITE MORE UNIT TESTS!']
  ```
  
  @method computed.map
  @for Ember
  @param {String} dependentKey
  @param {Function} callback
  @return {Ember.ComputedProperty} an array mapped via the callback