JSFiddle - React, Tailwind, and code Playground

JavaScript

const underscoreIfEmpty = string => string.length ? string : '_';

const removeLetters = lettersArr => pred => 
        Array.from(new Set(lettersArr.split('')
                .filter(l => !pred(l, lettersArr)))).join(''); 


const predicate = (letter, string) => 
        string.match(new RegExp(letter, 'gi')).length % 2 === 0;

console.log(underscoreIfEmpty(removeLetters('aabbbc')(predicate)));
console.log(underscoreIfEmpty(removeLetters('abbadddd')(predicate)));
console.log(underscoreIfEmpty(removeLetters('abaadd')(predicate)));