Claude, thanks for answering, one correction at bottom:
Claude Pache <mailto:[email protected]>
September 16, 2013 11:42 AM
I suggest:

[ ... mySet ]

or, if you don't want to use any new syntax:

Array.from(mySet)

—Claude

P.S. The syntax `[e for e of mySet]` is outdated in Harmony, you should use `[(for let e of mySet) e]`.

No, the new syntax is [for (e of mySet) e] -- no let and parens in the same place as in the for-of/in loop statements.

/be


Le 16 sept. 2013 à 17:33, Angus Croll <[email protected] <mailto:[email protected]>> a écrit :

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 <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 <http://people.mozilla.org/%7Ejorendorff/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 ifArray.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
_______________________________________________
es-discuss mailing list
[email protected] <mailto:[email protected]>
https://mail.mozilla.org/listinfo/es-discuss

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
Angus Croll <mailto:[email protected]>
September 16, 2013 11:33 AM
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 <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 <http://people.mozilla.org/%7Ejorendorff/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 ifArray.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
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to