summaryrefslogtreecommitdiff
path: root/src/util.js
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2023-11-16 14:50:00 -0600
committersanine <sanine.not@pm.me>2023-11-16 14:50:00 -0600
commitf9fc4d26ec5fca9ee175c8a6fbcdd0fa36f10947 (patch)
treef190e6e465bb563c608a916f41fc8bf686ea2897 /src/util.js
parent7825b92ce3be95a0ce1dfea9388adbaadce83b1f (diff)
clear out js files
Diffstat (limited to 'src/util.js')
-rw-r--r--src/util.js62
1 files changed, 0 insertions, 62 deletions
diff --git a/src/util.js b/src/util.js
deleted file mode 100644
index f83039f..0000000
--- a/src/util.js
+++ /dev/null
@@ -1,62 +0,0 @@
-'use strict';
-
-
-export function create(obj, proto=Object.prototype) {
- const props = Object.keys(obj)
- .map((key) => [ key, { value: obj[key], enumerable: true } ])
- .reduce((acc, [ key, value ]) => ({ ...acc, [key]: value }), {});
-
- return Object.create(proto, props);
-};
-
-
-export function random_choice(collection, r=Math.random()) {
- const idx = Math.floor(collection.length * r);
- return collection[idx];
-}
-
-
-export function pairs(arr1, arr2) {
- return arr1
- .map((x, i) => arr2.map(y => [x, y]))
- .flat();
-}
-
-
-export function deepEqual(a, b, debug=false) {
- if (typeof(a) === 'object') {
- if (typeof(b) === 'object') {
- // do deep equality
- return [...new Set(Object.keys(a).concat(Object.keys(b)))].reduce(
- (acc, key) => {
- return acc && deepEqual(a[key], b[key]);
- },
- true
- );
- } else {
- // one object, one non-object
- return false;
- }
- } else {
- return a === b;
- }
-}
-
-
-export function apply(f, n, x0) {
- if (n == 0) {
- return x0;
- } else {
- return f(apply(f, n-1, x0));
- }
-}
-
-
-export function shuffle(arr) {
- const shuffled = [...arr];
- for (let i=arr.length-1; i > 0; i--) {
- const j = Math.floor(Math.random() * (i+1));
- [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]
- }
- return shuffled;
-}