JSFiddle - React, Tailwind, and code Playground

HTML

<select id="filters">
</select>

String filtro: <input type="text" id="query" />

<input type="button" id="filter" value="Filtrar" />

JavaScript

// Json
var json = [{
    colunaA: "aaa",
    colunaB: "bbb",
    colunaC: "ccc"
}, {
    colunaA: "ddd",
    colunaB: "eee",
    colunaC: "fff"
},{
    colunaA: "ggg",
    colunaB: "hhh",
    colunaC: "iii"
}];

// Criar combo
var filters = Object.keys(json[0]);
var select = document.getElementById("filters");

for (var i = 0; i < filters.length; i++) {
    var opt = document.createElement("option");
    opt.text = filters[i];
    opt.value = filters[i];
    
    select.appendChild(opt);
}

var query = document.getElementById("query");

document.getElementById("filter").onclick = function() {
    var regex = new RegExp("^" + query.value);
    
    var result = json.filter(function(item) {
        var r = item[select.value].match(regex);
        return (r && r.length > 0);
    });
    
    console.clear();
    console.log(result);
};