code: function map(O, _fn) {
              if (isNothing(O)) return [];
              var key = void 0,
                  i = 0,
                  l = O.length,
                  results = [],
                  fnResult = void 0;
              if (isObject(O)) {
                  for (key in O) {
                      if (typeof O[key] != "undefined") {
                          fnResult = undefined;
                          if ((fnResult = _fn.call(O[key], key, O[key])) === false) break;else results.push(fnResult);
                      }
                  }
              } else {
                  for (; i < l;) {
                      if (typeof O[i] != "undefined") {
                          fnResult = undefined;
                          if ((fnResult = _fn.call(O[i], i, O[i++])) === false) break;else results.push(fnResult);
                      }
                  }
              }
              return results;
          }
docs: In addition to using the http://underscorejs.org : map, reduce, reduceRight, find 
  원본 아이템들을 이용하여 사용자 함수의 리턴값으로 이루어진 새로운 배열을 만듭니다.
  @method ax5.util.map
  @param {Object|Array} O
  @param {Function} _fn
  @returns {Array}
  @example
  ```js
  var myArray = [0,1,2,3,4];
  var myObject = {a:1, b:"2", c:{axj:"what", arrs:[0,2,"3"]},
  fn: function(abcdd){
  return abcdd;
  }
  };
  
  var _arr = ax5.util.map( myArray,  function(index, I){
  return index+1;
  });
  console.log(_arr);
  // [1, 2, 3, 4, 5]
  
  var _arr = ax5.util.map( myObject,  function(k, v){
  return v * 2;
  });
  console.log(_arr);
  // [2, 4, NaN, NaN]
  ```