src/keys.js
function zipmap(collection) {
        var arrays = Array.prototype.slice.call(arguments, 1);
        return collection.map(function(element, i) {
            var others = [];
            for (var j = 0; j < arrays.length; j++) {
                var el = arrays[j] && arrays[j][i];
                others.push(el !== null && typeof el !== 'undefined' ? el : null);
            }
            return [element].concat(others);
        });
    }
function zipmap(collection) {
        var arrays = Array.prototype.slice.call(arguments, 1);
        return collection.map(function(element, i) {
            var others = [];
            for (var j = 0; j < arrays.length; j++) {
                var el = arrays[j] && arrays[j][i];
                others.push(el !== null && typeof el !== 'undefined' ? el : null);
            }
            return [element].concat(others);
        });
    }
function zipmap ( collection ) { var arrays = Array . prototype . slice . call ( arguments , 1 ) ; return collection . map ( function ( element , i ) { var others = [ ] ; for ( var j = 0 ; j < arrays . length ; j ++ ) { var el = arrays [ j ] && arrays [ j ] [ i ] ; others . push ( el !== null && typeof el !== 'undefined' ? el : null ) ; } return [ element ] . concat ( others ) ; } ) ; }
Produces an array of arrays which are the result of zipping together the
elements of `this` and the array arguments. If any of the array arguments are
longer than `this`, their remaining elements will be skipped. If any of the array
arguments are shorter than `this`, their missing elements will be replaced with null.

@static
@param {array} collection - The source array
@param {array} arrays* - A variadic number of arrays to be zipmapped
Produces an array of arrays which are the result of zipping together the elements of this and the array arguments . If any of the array arguments are longer than this their remaining elements will be skipped . If any of the array arguments are shorter than this their missing elements will be replaced with null .