diff options
Diffstat (limited to 'src/util.js')
| -rw-r--r-- | src/util.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/util.js b/src/util.js new file mode 100644 index 00000000..3113474b --- /dev/null +++ b/src/util.js @@ -0,0 +1,52 @@ +"use strict" + +define(function() { + + function set_from_array(a) { + var ret = {}; + for (var k = 0; k < a.length; ++k) { + ret[a[k]] = 1; + } + return ret; + } + + function set_from_object(o) { + var ret = {} + for ( var k in o) { + ret[k] = 1; + } + return ret; + } + + function set_diff(sa, sb) { + var ret = { + a_b : [], + b_a : [] + }; + var i; + for (i in sa) { + if (!(i in sb)) { + ret.a_b.push(i); + } + } + for (i in sb) { + if (!(i in sa)) { + ret.b_a.push(i); + } + } + return ret; + } + + function array_diff(aa, ab) { + var sa = set_from_array(aa); + var sb = set_from_array(ab); + return set_diff(sa, sb); + } + + return { + set_from_array : set_from_array, + set_from_object : set_from_object, + set_diff : set_diff, + array_diff : array_diff + }; +}); |
