если можно просто заменить в массивеВ том-то и дело, что не просто, в чём вы уже убедились. Иначе бы и вопроса этого не было.
у меня есть массив с данными, где нужно заменить, зачем мне обращаться к DOM?Затем, что это самый подходящий инструмент для вашей задачи. Речь, разумеется, не про то, чтобы отрендерить данные на странице, а потом их получить обратно - постройте параллельный DOM в памяти и никакой React вам не помешает.
Нет ни одной причины не использовать рекурсивный обход DOM в данной задаче.
P.S. Мы на "ты" не переходили.