Как можно наиболее быстро искать данные по JSON файлу?
const searchText = ‘....’;
const regex = new RegExp(searchText, 'gi'); // вынести за цикл filter

var matches = array.filter(state=> {
  const name = state.name, 
         data =  state.data.toString();
    return regex.test(name) || regex.test(data);
});
Если у вас "json" это пришедший из postgress'овского jsonb  поля - то postgress умеет делать запросы внутри jsonb: https://hackernoon.com/how-to-query-jsonb-beginner... (первая ссылка в гугле).

Если такой вариант не подходит очевидная оптимизация - высунуть создание регэкспа из цикла. Хотя я не уверен, что какой-нить v8 это несоптимизировал самостоятельно. (на моей машине это сокращает время втрое примерно)

Какой у вас объем данных? Поиск по множеству строк не должен занимать много времени. И пока у вас не миллионы этих строк все должно быть быстро. Эквивалентный код на моей машине выполняет проход регэкспом по массиву из миллиона строк менее чем за 100мс. Если у вас бОльшие объемы или хотя бы сопоставимые - вы что-то делаете не так :) Ну или если вы ожидаете обработку такого объема данных моментально, то стоит скорректировать ожидания.

P.s. это нода или браузер? Если нода - то пляски на стороне js все равно не имеют смысл так как радикально ускорить не получится, а вот 2-3 пользователя ищущие что-то вам все положат.