00001 var arrayFilter = require('./_arrayFilter'),
00002 arrayMap = require('./_arrayMap'),
00003 baseProperty = require('./_baseProperty'),
00004 baseTimes = require('./_baseTimes'),
00005 isArrayLikeObject = require('./isArrayLikeObject');
00006
00007
00008 var nativeMax = Math.max;
00009
00029 function unzip(array) {
00030 if (!(array && array.length)) {
00031 return [];
00032 }
00033 var length = 0;
00034 array = arrayFilter(array, function(group) {
00035 if (isArrayLikeObject(group)) {
00036 length = nativeMax(group.length, length);
00037 return true;
00038 }
00039 });
00040 return baseTimes(length, function(index) {
00041 return arrayMap(array, baseProperty(index));
00042 });
00043 }
00044
00045 module.exports = unzip;