Рассмотрим следующее:
this.setState({
validations: [...this.state.validations, ...validations]
}, () => {
// ... Do something
});
Где я делаю: [...this.state.validations, ...validations]
проверки - это массив объектов.
Так, например:
// validation
[{message: 'hello', isError: true, fieldId: 87}, ....]
По сути, каждый раз, когда у нас возникает ошибка проверки, мы устанавливаем массив объектов в массив, как вы видите выше.
Проблема в том, что иногда дублирующиеся объекты добавляются.Под дубликатом я подразумеваю раздел сообщений, поэтому this.state.validations
может выглядеть следующим образом:
[
{message: 'hello', isError: true, fieldId: 87},
{message: 'hello', isError: true, fieldId: 87},
{message: 'hello', isError: true, fieldId: 87},
...
]
Я хотел бы сделать фильтр this.state.validations
на основе сообщения и fieldId в validations
и сказать:
// If this message doesn't exist for this field id, set it.
Есть ли простой, не беспорядочный способ сделать это, где я мог бы использовать фильтр или что-то еще, чтобы циклически проверять состояния и проверки, сравнивая и fieldId и сообщение, и если это не таксуществует: добавить?