JSFiddle - React, Tailwind, and code Playground

by dshilkret

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
!function(a){var b=Function("return this")()||(0,eval)("this");"function"==typeof define&&define.amd?define(["jsonq"],function(c){return b.jsonQ=a()}):"object"==typeof module&&module.exports?module.exports=a():b.jsonQ=a()}(function(undefined){function matchPath(a,b){var c=new RegExp("^"+a.join("~~"),"i");return c.test(b.join("~~"))}function newFormat(a){var b=a.keyAdded||[],c=a.json,d=a.path,e=a.newJson;return jsonQ.each(c,function(a,f){var g=d?JSON.parse(JSON.stringify(d)):[];g.push(a),"object"==objType(c)&&(b.indexOf(a)==-1&&(b.push(a),e.jsonQ_path[a]=[]),e.jsonQ_path[a].push({path:g}));var h=objType(f);"object"!=h&&"array"!=h||newFormat({json:f,newJson:e,path:g,keyAdded:b})}),e}var jsonQ=function(a){return new jsonQ.fn.init(a)},error=function(a){throw a},stringify=JSON.stringify,parse=JSON.parse;jsonQ.settings={sort:{order:"ASC",logic:function(a){return a},caseIgnore:!0,allLevel:!0}};var tFunc={topLevel:function(a){for(var b=this.jsonQ_current,c=this.cloneObj(jsonQ()),d=c.jsonQ_current=[],e="",f=a.key,g=a.method,h=0,i=b.length;h<i;h++){var k,j=b[h].path,l=!1,m=j.concat([]);if("parent"==g)0===m.length?l=!0:m.pop();else{var n=m.lastIndexOf(f);n==-1?l=!0:m=m.slice(0,n+1)}k=JSON.stringify(m),e==k||l||d.push({path:m}),e=k}return c.length=d.length,c.selector.push({method:g,key:f}),c},qualTrv:function(a){for(var b=this.jsonQ_current,c=this.cloneObj(jsonQ()),d=c.jsonQ_current=[],e=this.jsonQ_path,f=a.key,g=jsonQ.clone(e[f])||[],h=a.qualifier,i=objType(h),j=a.method,k="find"==j,l=0,m=b.length;l<m;l++){var n=b[l].path,o=[],p=!1;if(!k){if(0===n.length)continue;o=n.concat([]),o.pop()}for(var q=0;q<g.length;q++){var s,r=g[q].path;if(k)s=matchPath(n,r);else{var t=r.concat([]);t.pop(),s=o.join()==t.join()}if(s){var u=tFunc.qTest.call(this,i,h,r,d);u&&(g.splice(q,1),q--),p=!0}else...

JavaScript

var jsonObj = {
    "fathers": [{
        "age": 44,
        "name": "James Martin",
        "daughters": [{
            "age": 24,
            "name": "Michelle",
            "husband": {
                "age": 30,
                "name": "Matthew"
            }
        }, {
            "age": 30,
            "name": "Angela",
            "husband": {
                "age": 23,
                "name": "William"
            }
        }]
    }, {
        "age": 47,
        "name": "David Thompson",
        "daughters": [{
            "age": 20,
            "name": "Amy",
            "husband": {
                "age": 26,
                "name": "Edward"
            }
        }, {
            "age": 20,
            "name": "Dorothy",
            "husband": {
                "age": 23,
                "name": "Timothy"
            }
        }]
    }, {
        "age": 56,
        "name": "Thomas Young",
        "daughters": [{
            "age": 22,
            "name": "Sharon",
            "husband": {
                "age": 23,
                "name": "Jason"
            }
        }, {
            "age": 22,
            "name": "Carol",
            "husband": {
                "age": 23,
                "name": "William"
            }
        }, {
            "age": 20,
            "name": "Brenda",
            "husband": {
                "age": 30,
                "name": "Timothy"
            }
        }]
    }, {
        "age": 53,
        "name": "Jason Martinez",
        "daughters": [{
            "age": 19,
            "name": "Jessica",
            "husband": {
                "age": 24,
                "name": "Daniel"
            }
        }]
    }, {
        "age": 51,
        "name": "Thomas Gonzalez",
        "daughters": [{
            "age": 23,
            "name": "Brenda",
            "husband": {
                "age": 30,
                "name": "George"
            }
        }, {
            "age": 30,
            "name": "Dorothy",
          ...