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);
};