UNPKG

foop

Version:

interfaces that describe their intentions.

46 lines (41 loc) 3.27 kB
var preAllocate = require('../array/preAllocate') /** * Set into Array * @since 5.0.0-beta.6 * @memberOf cast * * @param {Set} set cast to Array * @return {Array} Array(x) * * @name setToArray * @alias setToArr * @alias fromSetToArray * * {@link https://github.com/andrewplummer/Sugar/blob/master/lib/common.js#L1227 sugar-settoarray} * {@link https://github.com/lodash/lodash/blob/master/.internal/setToArray.js lodash-settoarray} * @see {@link lodash-settoarray} * @see {@link sugar-settoarray} * @see cast/set * * @example * * setToArray(new Set(['eh', 'oh'])) * //=> ['eh', 'oh'] * */ module.exports = function setToArray(set) { // allocate an array with the size of the set var allocated = preAllocate(set) var index = 0 // @NOTE this can mess things up when using index from `forEach` // and just add empty items // @NOTE remember not to 1 line arrow useless return here // // is `forEach` fastest? is shortest? set.forEach(function (value) { allocated[index++] = value // allocated[index] = value }) return allocated } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0VG9BcnJheS5qcyIsInNvdXJjZXMiOlsic2V0VG9BcnJheS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwcmVBbGxvY2F0ZSA9IHJlcXVpcmUoJy4uL2FycmF5L3ByZUFsbG9jYXRlJylcblxuLyoqXG4gKiBTZXQgaW50byBBcnJheVxuICogQHNpbmNlIDUuMC4wLWJldGEuNlxuICogQG1lbWJlck9mIGNhc3RcbiAqXG4gKiBAcGFyYW0ge1NldH0gc2V0IGNhc3QgdG8gQXJyYXlcbiAqIEByZXR1cm4ge0FycmF5fSBBcnJheSh4KVxuICpcbiAqIEBuYW1lIHNldFRvQXJyYXlcbiAqIEBhbGlhcyBzZXRUb0FyclxuICogQGFsaWFzIGZyb21TZXRUb0FycmF5XG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyZXdwbHVtbWVyL1N1Z2FyL2Jsb2IvbWFzdGVyL2xpYi9jb21tb24uanMjTDEyMjcgc3VnYXItc2V0dG9hcnJheX1cbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaC9ibG9iL21hc3Rlci8uaW50ZXJuYWwvc2V0VG9BcnJheS5qcyBsb2Rhc2gtc2V0dG9hcnJheX1cbiAqIEBzZWUge0BsaW5rIGxvZGFzaC1zZXR0b2FycmF5fVxuICogQHNlZSB7QGxpbmsgc3VnYXItc2V0dG9hcnJheX1cbiAqIEBzZWUgY2FzdC9zZXRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgIHNldFRvQXJyYXkobmV3IFNldChbJ2VoJywgJ29oJ10pKVxuICogICAgLy89PiBbJ2VoJywgJ29oJ11cbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gc2V0VG9BcnJheShzZXQpIHtcbiAgLy8gYWxsb2NhdGUgYW4gYXJyYXkgd2l0aCB0aGUgc2l6ZSBvZiB0aGUgc2V0XG4gIGNvbnN0IGFsbG9jYXRlZCA9IHByZUFsbG9jYXRlKHNldClcblxuICBsZXQgaW5kZXggPSAwXG5cbiAgLy8gQE5PVEUgdGhpcyBjYW4gbWVzcyB0aGluZ3MgdXAgd2hlbiB1c2luZyBpbmRleCBmcm9tIGBmb3JFYWNoYFxuICAvLyBhbmQganVzdCBhZGQgZW1wdHkgaXRlbXNcbiAgLy8gQE5PVEUgcmVtZW1iZXIgbm90IHRvIDEgbGluZSBhcnJvdyB1c2VsZXNzIHJldHVybiBoZXJlXG4gIC8vXG4gIC8vIGlzIGBmb3JFYWNoYCBmYXN0ZXN0PyBpcyBzaG9ydGVzdD9cbiAgc2V0LmZvckVhY2godmFsdWUgPT4ge1xuICAgIGFsbG9jYXRlZFtpbmRleCsrXSA9IHZhbHVlXG4gICAgLy8gYWxsb2NhdGVkW2luZGV4XSA9IHZhbHVlXG4gIH0pXG5cbiAgcmV0dXJuIGFsbG9jYXRlZFxufVxuIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJuRCxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsVUFBVSxDQUFDLEdBQUcsRUFBRTs7RUFFeENBLEdBQUssQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQzs7RUFFbENDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQzs7Ozs7OztFQU9iLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBQSxLQUFLLENBQUEsQ0FBQyxBQUFHO0lBQ25CLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUs7O0dBRTNCLENBQUM7O0VBRUYsT0FBTyxTQUFTO0NBQ2pCOyJ9