JSFiddle - React, Tailwind, and code Playground

by Andrey Gershun

HTML

<script src="http://alasql.org/console/alasql.min.js"></script>
<p>Result: <span id="res"></span></p>

JavaScript

var objectArray = [
            {"prop1":"prop1Data1","prop2":"prop2Data1","prop3":{"name":"Tom","age":"24","class":"graduate"},"prop4":"prop4Data1","prop5":"prop5Data1"},
            {"prop1":"prop1Data2","prop2":"prop2Data2","prop3":{"name":"Cat","age":"24","class":"graduate"},"prop4":"prop4Data2","prop5":"prop5Data2"},
            {"prop1":"prop1Data3","prop2":"prop2Data3","prop3":{"name":"Tom","age":"24","class":"graduate"},"prop4":"prop4Data3","prop5":"prop5Data3"},
            {"prop1":"prop1Data4","prop2":"prop2Data4","prop3":{"name":"Tom","age":"24","class":"graduate"},"prop4":"prop4Data4","prop5":"prop5Data4"}
        ];

    var wantedPropArray=["prop1","prop2","prop3.name"];

    function alaPluck(data, props) {
         var sel = props.map(function(p){
             return p.replace(/[\.]/g,'->')+' AS ['+p+']';
         }).join(',');
         return alasql('SELECT '+sel+' FROM ?',[data]);
    }

var res = alaPluck(objectArray, wantedPropArray );

document.getElementById("res").textContent = JSON.stringify(res);