Revision: 7285
Updated Code
at July 17, 2008 06:33 by scarfboy
Updated Code
function unique(l) { var o=new Object(),ret=[]; for(i in l){o[l[i]]=1} for(k in o){ret.push(k)} return ret; } function union(l1,l2) { var o=new Object(),ret=[]; for(i in l1){o[l1[i]]=1} for(i in l2){o[l2[i]]=1} for(k in o){ret.push(k)} return ret; } function intersect(l1,l2) { var o=new Object(), ret=[]; for (i in l1) o[l1[i]]=1; //this value is ignored for (i in l2) if (o[l2[i]]!==undefined) ret.push(l2[i]); return ret; } function except(l1,l2) { var o=new Object(), ret=[]; for (i in l1) o[l1[i]]=1; for (i in l2) delete(o[l2[i]]); for (i in o) ret.push(i); return ret; }
Revision: 7284
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at July 17, 2008 06:31 by scarfboy
Initial Code
//Unique-ify list. (set-in-list) function unique(l) { var o=new Object(),ret=[]; for(i in l){o[l[i]]=1} for(k in o){ret.push(k)} return ret; } function union(l1,l2) { var o=new Object(),ret=[]; for(i in l1){o[l1[i]]=1} for(i in l2){o[l2[i]]=1} for(k in o){ret.push(k)} return ret; } function intersect(l1,l2) { var o=new Object(), ret=[]; for (i in l1) o[l1[i]]=1; //the value is ignored for (i in l2) if (o[l2[i]]!==undefined) ret.push(l2[i]); return ret; } function except(l1,l2) { var o=new Object(), ret=[]; for (i in l1) o[l1[i]]=1; for (i in l2) delete(o[l2[i]]); for (i in o) ret.push(i); return ret; }
Initial URL
Initial Description
Exploits hash keys uniqueness, but in doing so effectively toString()s everything, meaning this should not be used for much beyond strings and perhaps integers. I used this when I wanted to do some client-side filtering of (integer) identifiers.
Initial Title
Javascript set(-of-string) functions
Initial Tags
javascript
Initial Language
JavaScript