What happened to this? I need it!
Github link ain't workin'
Ryan Florence
On Aug 15, 2009, at 2:11 PM, David Nolen wrote:
Set v0.2 released today. Added Set.filter, Set.map, Set.each.
Set.filter and Set.map return new Set instances.
David
On Tue, Aug 11, 2009 at 5:52 PM, David Nolen
<dnolen.li...@gmail.com> wrote:
http://github.com/swannodette/Set/tree/master
Support for intersection, union, difference on arbitrary Arrays of
JavaScript Objects which are JSON compliant.
You can do things like:
var set1 = new Set([1, 2, 9, [3, 4]]);
var set2 = new Set([1, [3, 4], 5, 9]);
// set1.aintersection(set2) -> [1, [3, 4], 9]
var set3 = new Set([{first:"Bob", last:"Smith"}, {first:"Mary",
last:"Smith"}]);
var set4 = new Set([{first:"Tim", last:"Smith"}, {first:"Mary",
last:"Smith"}]);
// set3.adifference(set4) -> [{first:"Bob", last:"Smith"},
{first:"Tim", last:"Smith"}]
It includes a function called $hash that can test equality of any
two JavaScript Objects which are JSON compliant. This works on
Objects with the following bit of magic: it converts Objects into
arrays of arrays of key value pairs. It sorts this array by the
original hash keys and then JSON.encodes them. Instead of:
{first:"Bob", last:"Smith"} != {first:"Bob", last:"Smith"}
You can do
$hash({first:"Bob", last:"Smith"}) == $hash({first:"Bob",
last:"Smith"})
For large collections which are checked frequently whether they
include a subset of some Objects, it far more efficient than
Array.contains, and you don't have to write additional equality
logic since Array.contains cannot compare two JavaScript Objects
with identical key-value pairs.
Cheers.