summaryrefslogtreecommitdiff
path: root/scripts/util.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/util.js')
-rw-r--r--scripts/util.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/util.js b/scripts/util.js
new file mode 100644
index 00000000..4eb94266
--- /dev/null
+++ b/scripts/util.js
@@ -0,0 +1,35 @@
+function set_from_array(a) {
+ var ret = {};
+ for (var k = 0 ; k < a.length ; ++k) {
+ ret[a[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);
+}
+
+if (typeof(exports) != 'undefined') {
+ exports.set_diff = set_diff;
+ exports.array_diff = array_diff;
+ exports.set_from_array = set_from_array;
+}