Source: utils/zip.js

'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.zip = zip;
/**
 * Creates an object joining values from the Harray (which will be the keys) and values from the argument array (which will be the values).
 * @name Harray#zip
 * @method
 * @param {Array} arr - An array of values.
 * @returns {Object} An object whose keys come from the Harray and values come from the argument passed.
 * @example
 * let harr = new Harray(0, 2);
 * let fruits = ['apple', 'pear', 'banana', 'papaya'];
 * harr.zip(fruits) // -> {0: 'apple', 2: 'pear', 4: 'banana', 6: 'papaya'}
 */
function zip(arr) {
    if (Object.prototype.toString.call(arr) !== '[object Array]') {
        throw new TypeError();
    }

    var zipped = {};
    for (var i = 0; i < arr.length; i++) {
        zipped[this.get(i)] = arr[i];
    }

    return zipped;
}