New variant idea
[xogo.git] / utils / array.js
index 8f2ebfe..af8462e 100644 (file)
@@ -5,8 +5,22 @@ export const ArrayFun = {
     return [...Array(size1)].map(() => Array(size2).fill(initElem));
   },
 
-  range: function(max) {
-    return [...Array(max).keys()];
+  range: function(min, max) {
+    if (!max) {
+      max = min;
+      min = 0;
+    }
+    return [...Array(max - min).keys()].map(k => k + min);
+  },
+
+  toObject: function(keys, values) {
+    if (!Array.isArray(values))
+      // Second argument is a scalar
+      values = Array(keys.length).fill(values);
+    return (
+      ArrayFun.range(keys.length)
+      .reduce((acc, curr) => (acc[keys[curr]] = values[curr], acc), {})
+    );
   }
 
 };