JSFiddle - React, Tailwind, and code Playground
by Gabriel Correa
JavaScript
const searchArray = (array, keyword) => {
const regex = new RegExp(`.*${keyword}.*`, 'i');
const searchKeys = ['Texto', 'Numerico', 'Data', 'Tempo'];
const filteredArray = array.filter((element) => {
return searchKeys.some((key) => {
if (Array.isArray(element[key])) {
return element[key].some((item) => {
return item.value && item.value.match(regex) !== null;
});
} else if (typeof element[key] === 'object' && element[key].value) {
return element[key].value.match(regex) !== null;
}
return false;
});
});
return filteredArray;
}
const myArray = [
{
"_id": {
"$oid": "641c7734b77962ef1019a489"
},
"Texto": [
{
"_id": "6408881dc6d5c80f4d5d33a8",
"value": "333"
}
],
"Numerico": [
{
"_id": "274685",
"value": ""
}
],
"Data": {
"_id": "eeb55718-a153-cfcc-ee62-d15da7a0aa94",
"value": "22/03/2023"
},
"Tempo": {
"_id": "d0a3afd0-86c7-9382-0fb1-2ffc5175955a",
"value": "09:49"
},
"Multipla": [
""
],
"Unica": [
""
],
"createdAt": [
{
"value": "22/03/2023 09:49:10"
}
]
},
{
"_id": {
"$oid": "641c7734b77962ef1019a488"
},
"Texto": [
{
"_id": "6408881dc6d5c80f4d5d33a8",
"value": "999"
}
],
"Numerico": [
{
"_id": "569457",
"value": ""
}
],
"Data": {
"_id": "eeb55718-a153-cfcc-ee62-d15da7a0aa94",
"value": "22/03/2023"
},
"Tempo": {
"_id": "d0a3afd0-86c7-9382-0fb1-2ffc5175955a",
"value": "09:33"
},
"Multipla": [
""
],
"Unica": [
""
],
"createdAt": [
{
"value": "22/03/2023 09:33:28"
}
]
},{
"_id": {
"$oid": "641c7734b77962ef1019a486"
},
"Texto": [
{
"_id": "6408881dc6d5c80f4d5d33a8",
"value": "Off-line 99"
}
],
"Numerico": [
{
"_id": "33848",
"value": ""
}
],
...