code: function(){
              var parts = Ext.partition(arguments, function( val ){ return typeof val != 'function'; }),
                  arrs = parts[0],
                  fn = parts[1][0],
                  len = Ext.max(Ext.pluck(arrs, "length")),
                  ret = [],
                  i,
                  j,
                  aLen;
  
              for (i = 0; i < len; i++) {
                  ret[i] = [];
                  if(fn){
                      ret[i] = fn.apply(fn, Ext.pluck(arrs, i));
                  }else{
                      for (j = 0, aLen = arrs.length; j < aLen; j++){
                          ret[i].push( arrs[j][i] );
                      }
                  }
              }
              return ret;
          }
docs: Zips N sets together.
  
  Example 1:
  
  Ext.zip([1,2,3],[4,5,6]); // [[1,4],[2,5],[3,6]]
  
  Example 2:
  
  Ext.zip(
  [ "+", "-", "+"],
  [  12,  10,  22],
  [  43,  15,  96],
  function(a, b, c){
  return "$" + a + "" + b + "." + c
  }
  ); // ["$+12.43", "$-10.15", "$+22.96"]
  
  @param {Array/NodeList...} arr This argument may be repeated. Array(s)
  to contribute values.
  @param {Function} zipper (optional) The last item in the argument list.
  This will drive how the items are zipped together.
  @return {Array} The zipped set.
  @deprecated 4.0.0 Will be removed in the next major version