foop
Version:
interfaces that describe their intentions.
33 lines (28 loc) • 2.68 kB
JavaScript
var preAllocate = require('../array/preAllocate')
/**
* @desc Converts `map` to its key-value pairs.
* @since 5.0.0-beta.6
*
* @param {Object} map The map to convert.
* @return {Array} Returns the key-value pairs.
*
* {@link https://github.com/andrewplummer/Sugar/blob/master/lib/common.js#L1235 sugar-settoarray}
* {@link https://github.com/lodash/lodash/blob/master/.internal/mapToArray.js lodash-maptoarray}
* @see {@link lodash-maptoarray}
* @see {@link sugar-maptoarray}
* @see cast/pairs
*
* @example
* mapToArray(new Map(Object.entries({eh: true})))
* //=> [ ['eh', true] ]
*/
function mapToArray(map) {
var index = -1
var result = preAllocate(map.size)
map.forEach(function (value, key) {
result[++index] = [key, value]
})
return result
}
module.exports = mapToArray
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwVG9BcnJheS5qcyIsInNvdXJjZXMiOlsibWFwVG9BcnJheS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwcmVBbGxvY2F0ZSA9IHJlcXVpcmUoJy4uL2FycmF5L3ByZUFsbG9jYXRlJylcblxuLyoqXG4gKiBAZGVzYyBDb252ZXJ0cyBgbWFwYCB0byBpdHMga2V5LXZhbHVlIHBhaXJzLlxuICogQHNpbmNlIDUuMC4wLWJldGEuNlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXAgVGhlIG1hcCB0byBjb252ZXJ0LlxuICogQHJldHVybiB7QXJyYXl9IFJldHVybnMgdGhlIGtleS12YWx1ZSBwYWlycy5cbiAqXG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2FuZHJld3BsdW1tZXIvU3VnYXIvYmxvYi9tYXN0ZXIvbGliL2NvbW1vbi5qcyNMMTIzNSBzdWdhci1zZXR0b2FycmF5fVxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNoL2Jsb2IvbWFzdGVyLy5pbnRlcm5hbC9tYXBUb0FycmF5LmpzIGxvZGFzaC1tYXB0b2FycmF5fVxuICogQHNlZSB7QGxpbmsgbG9kYXNoLW1hcHRvYXJyYXl9XG4gKiBAc2VlIHtAbGluayBzdWdhci1tYXB0b2FycmF5fVxuICogQHNlZSBjYXN0L3BhaXJzXG4gKlxuICogQGV4YW1wbGVcbiAqICAgIG1hcFRvQXJyYXkobmV3IE1hcChPYmplY3QuZW50cmllcyh7ZWg6IHRydWV9KSkpXG4gKiAgICAvLz0+IFsgWydlaCcsIHRydWVdIF1cbiAqL1xuZnVuY3Rpb24gbWFwVG9BcnJheShtYXApIHtcbiAgbGV0IGluZGV4ID0gLTFcbiAgY29uc3QgcmVzdWx0ID0gcHJlQWxsb2NhdGUobWFwLnNpemUpXG5cbiAgbWFwLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICByZXN1bHRbKytpbmRleF0gPSBba2V5LCB2YWx1ZV1cbiAgfSlcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbWFwVG9BcnJheVxuIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQm5ELFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTtFQUN2QkMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7RUFDZEQsR0FBSyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQzs7RUFFcEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFBLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxBQUFHO0lBQzFCLE1BQU0sQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQztHQUMvQixDQUFDOztFQUVGLE9BQU8sTUFBTTtDQUNkOztBQUVELE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBVTsifQ==