JSFiddle - React, Tailwind, and code Playground

by jfriend00

HTML

<script src="http://files.the-friend-family.com/log.js"></script>

CSS

body {
    font-family: "Courier New";
    font-size: 11px;
}

JavaScript

var raw = {};
raw.add = function(a,b){return a + b;}
raw.sub = function(a,b){return a - b;}
raw.neg = function(a){return -a;}
raw.sqrt = function(a){return Math.sqrt(a);}

var modified = {};
for (prop in raw) {
    if (raw.hasOwnProperty(prop) && typeof raw[prop] === "function") {
        (function (prop) {
            modified[prop] = function () {
                var arglist = [].slice.apply(arguments);
                var out = [];
                if (arglist.length == 1) {
                    [].concat(arglist[0]).forEach(function (d) {
                            out.push(raw[prop](d));
                    });
                } else if (arglist.length == 2) {
                    [].concat(arglist[0]).forEach(function (d1) {
                        [].concat(arglist[1]).forEach(function (d2) {
                            out.push(raw[prop](d1, d2));
                        })
                    });
                }
                return out;
            }
        })(prop);
    }
}


log("modified.sqrt([4,9,16,25]) = ", modified.sqrt([4,9,16,25]));
log("modified.add([1,2,3,4], [4,3,2,1]) = ", modified.add([1,2,3,4], [4,3,2,1]));
log("modified.sub([1,2,3,4], [4,3,2,1]) = ", modified.sub([1,2,3,4], [4,3,2,1]));
log("modified.add(1, [4,3]) = ", modified.add(1, [4,3]));