Rick Waldron wrote:


On Wed, Oct 3, 2012 at 12:56 PM, Herby Vojčík <[email protected]
<mailto:[email protected]>> wrote:



    Nicholas C. Zakas wrote:

        After a little more experimenting with sets (still a really big
        fan!!),
        I've come across an interesting problem. Basically, I found
        myself using
        a set and then wanting to convert that into JSON for storage.
        JSON.stringify() run on a set returns "{}", because it's an object
        without any enumerable properties. I'm wondering if that's the
        correct
        behavior because a set is really more like an array than it is an
        object, and perhaps it would be best to define a toJSON() method for
        sets such as:

        Set.prototype.toJSON = function() {
        return Array.from(this);

    It depends... you should be able to reread it, so the best thing
    would proably be to use matching set of transformers for both
    stringify and parse. I personally would rather see something like
             { _Set_from_: Array.from(this) }
    here.

        };



The revived array can be passed as an arg to new Set(revived) :

new Set(JSON.parse(s.toJSON()))

I am talking about deep nested structure with (possibly) multiple sets all over. Your solution is unusable, you need to explicitly know where the arrayified sets are.

Introducing another Set constructor just to wrap the above is
early-warning feature creep. toJSON is an intuitive addition

Rick

Herby
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to