Ещё вопрос: стоит ли заставлять модераторов проверять-аппрувить каждый раз целиком все поля профиля, или только diff изменений? Если нет, то варианты 2, 4 отваливаются, либо писать механизм сравнения, чтобы показать на проверку только изменившиеся поля.
Вадим, reduce() прошёл свой пик славы и вышел в тираж, рекламирует ширпотреб )
Есть подозрение, что таки не строка, а массив буковок нужен, поэтому пускай так.
Taros, пример вашего кода с if-else покажите. В нём можно будет заменить if-else на, например, массив с двумя элементами и обращением к одному из них через преобразование типа Boolean -> Number.