TypeError: Cannot use `in` operator to search for `Статус` for undefined
вы не можете использовать оператор in для поиска "Статус" если переменная в которой производится поиск НЕОПРЕДЕЛЕНА
("Статус") in el.changelog)el.changelog надо проверить, существует ли он:el.status = el.changelog ? ("Статус") in el.changelog ? el.changelog["Статус"].after : 'не назначен' : 'нет лога изменений';
el.status = ("Статус") in el.changelog ? el.changelog["Статус"].after : 'не назначен';el.status = el.changelog ? ("Статус") in el.changelog ? el.changelog["Статус"].after : 'не назначен' : 'нет лога изменений';
export function queryLog(state = initialState, action): object {
if (action.type === constants.LOAD_QUERY_LOG_STOP) {
log = action.queryLog;
}
if (action.type === constants.LOAD_COMMENTS_STOP) {
comments = action.comments;
}
const list = log.concat(comments);
console.log("list:", list); // ----------- 1 ----------------
let summ = list.map(el => {
console.log("el:", el); // ----------- 2 ----------------
el.date = el.dt_changelog * 1000 || el.datetime * 1000;
el.type = el.dt_changelog ? 'changelog' : 'comment';
el.text = el.dt_changelog ? changed : el.text;
el.author = el.dt_changelog ? el.usr.source : el.author;
el.status = ("Статус") in el.changelog ? el.changelog["Статус"].after : 'не назначен';
return el;
});
console.log('!!!!!!!!!!!!!!!!!!!!!');
console.log(comments);
console.log(log);
console.log(summ);
summ.sort(function(a, b) {
if (a.date > b.date) {
return 1;
}
if (a.date < b.date) {
return -1;
}
return 0;
});
return summ;
}
в ней вы в зависимости от ситуации даете разные результаты работы регулярки, что в свою очередь запутывает логику вызова функции validate, добавляет доп флаг phone для конкретного случая. Что будет если таких конкретных случаев у вас будет 10? вы добавите 10 доп флагов?
Добавляя в валидатор этот код:
вы смешиваете логику проверки и логику обработки результатов проверки. Желательно так не делать.
Обратите внимание на приведенный мной вариант. Он универсален для всех возможных случаев валидации формы, позволяет просто и красиво задавать граничные условия для проверяемых значений. Но реализует лишь логику проверки. Взяв его за основу, задав необходимые для вашей задачи валидаторы, вы можете написать красивый и понятный код, реализующий логику обработки результатов проверки.