foop
Version:
interfaces that describe their intentions.
45 lines (40 loc) • 3.53 kB
JavaScript
var isTrue = require('../is/true')
var preAllocate = require('../array/preAllocate')
var toKey = require('./toKey')
/**
* Converts `set` to its value-value pairs (_or index/key-value with useIndex_).
* @since 5.0.0-beta.7
* @memberOf cast
*
* @param {Set} set The set to convert.
* @param {boolean} [useIndex=false] use [index, value] rather than [value, value]
* @return {Array} Returns the value-value pairs.
*
* @name setToArray
* @alias setToArr
* @alias fromSetToArray
*
* {@link https://github.com/lodash/lodash/blob/master/.internal/setToPairs.js lodash-settopairs}
* @see {@link lodash-settopairs}
* @see cast/set
* @see cast/toKey
*
* @example
*
* setToPairs(new Set(['eh', 'oh']))
* //=> [['eh', 'eh'], ['oh', 'oh']]
*
* setToPairs(new Set(['eh', 'oh']), true)
* //=> [['0', 'eh'], ['1', 'oh']]
*
*/
function setToPairs(set, useIndex) {
var index = -1
var result = preAllocate(set)
set.forEach(function (value) {
result[++index] = [isTrue(useIndex) ? toKey(index) : value, value]
})
return result
}
module.exports = setToPairs
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0VG9QYWlycy5qcyIsInNvdXJjZXMiOlsic2V0VG9QYWlycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc1RydWUgPSByZXF1aXJlKCcuLi9pcy90cnVlJylcbmNvbnN0IHByZUFsbG9jYXRlID0gcmVxdWlyZSgnLi4vYXJyYXkvcHJlQWxsb2NhdGUnKVxuY29uc3QgdG9LZXkgPSByZXF1aXJlKCcuL3RvS2V5JylcblxuLyoqXG4gKiBDb252ZXJ0cyBgc2V0YCB0byBpdHMgdmFsdWUtdmFsdWUgcGFpcnMgKF9vciBpbmRleC9rZXktdmFsdWUgd2l0aCB1c2VJbmRleF8pLlxuICogQHNpbmNlIDUuMC4wLWJldGEuN1xuICogQG1lbWJlck9mIGNhc3RcbiAqXG4gKiBAcGFyYW0ge1NldH0gc2V0IFRoZSBzZXQgdG8gY29udmVydC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3VzZUluZGV4PWZhbHNlXSB1c2UgW2luZGV4LCB2YWx1ZV0gcmF0aGVyIHRoYW4gW3ZhbHVlLCB2YWx1ZV1cbiAqIEByZXR1cm4ge0FycmF5fSBSZXR1cm5zIHRoZSB2YWx1ZS12YWx1ZSBwYWlycy5cbiAqXG4gKiBAbmFtZSBzZXRUb0FycmF5XG4gKiBAYWxpYXMgc2V0VG9BcnJcbiAqIEBhbGlhcyBmcm9tU2V0VG9BcnJheVxuICpcbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaC9ibG9iL21hc3Rlci8uaW50ZXJuYWwvc2V0VG9QYWlycy5qcyBsb2Rhc2gtc2V0dG9wYWlyc31cbiAqIEBzZWUge0BsaW5rIGxvZGFzaC1zZXR0b3BhaXJzfVxuICogQHNlZSBjYXN0L3NldFxuICogQHNlZSBjYXN0L3RvS2V5XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiAgICBzZXRUb1BhaXJzKG5ldyBTZXQoWydlaCcsICdvaCddKSlcbiAqICAgIC8vPT4gW1snZWgnLCAnZWgnXSwgWydvaCcsICdvaCddXVxuICpcbiAqICAgIHNldFRvUGFpcnMobmV3IFNldChbJ2VoJywgJ29oJ10pLCB0cnVlKVxuICogICAgLy89PiBbWycwJywgJ2VoJ10sIFsnMScsICdvaCddXVxuICpcbiAqL1xuZnVuY3Rpb24gc2V0VG9QYWlycyhzZXQsIHVzZUluZGV4KSB7XG4gIGxldCBpbmRleCA9IC0xXG4gIGNvbnN0IHJlc3VsdCA9IHByZUFsbG9jYXRlKHNldClcblxuICBzZXQuZm9yRWFjaCh2YWx1ZSA9PiB7XG4gICAgcmVzdWx0WysraW5kZXhdID0gW2lzVHJ1ZSh1c2VJbmRleCkgPyB0b0tleShpbmRleCkgOiB2YWx1ZSwgdmFsdWVdXG4gIH0pXG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHNldFRvUGFpcnNcbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUNwQ0EsR0FBSyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7QUFDbkRBLEdBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE2QmhDLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUU7RUFDakNDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0VBQ2RELEdBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQzs7RUFFL0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFBLEtBQUssQ0FBQSxDQUFDLEFBQUc7SUFDbkIsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUM7R0FDbkUsQ0FBQzs7RUFFRixPQUFPLE1BQU07Q0FDZDs7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFVBQVU7In0=