Set to Array conversions

Angus Croll anguscroll at gmail.com
Mon Sep 16 08:33:50 PDT 2013


I'm trying to figure out the most painless way, given a set, to return the
set's values as an array.

Possibilities:
1) harmony wiki (
http://wiki.ecmascript.org/doku.php?id=harmony:iterators&s=iterator)
suggests the following, but it is a syntax error in traceur, continuum and
"node --harmony"

let arr = [e for e of mySet];

2)The ES6 standard supports the following production (i.e. expression, not
var, before 'for'):
*IterationStatement : for ( LeftHandSideExpression of AssignmentExpression
) Statement*
(see http://people.mozilla.org/~jorendorff/es6-draft.html#sec-13.6.4.2)

which suggests I should be able to do this:
let arr = [];
for (arr[arr.length-1] of mySet);

(I can do the equivalent with for-in) but that also errors in the above
three transpilers

3) So then I'm left with the pedestrian:
let arr = [];
for (e of mySet) {
  arr.push(e);
}

4) I also wondered if Array.from(mySet) would do the trick but again
doesn't seem to pass muster with any of the above transpilers. (continuum
 returns a zero length array and the other two don't know Array.from)

Wondering if I'm missing something better.
thanks

Angus
@angustweets
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130916/e9496de9/attachment.html>


More information about the es-discuss mailing list