Chefranov
@Chefranov
Новичок

Где ошибка в условии?

Имеется такой код:
data.messages.forEach(m => messages.push({
				explanation: '',
				lastColumn: m.lastColumn,
				lastLine: m.lastLine,
				message: m.message,
				messageid: '',
				type: (m.subType === 'warning') ? 'warn' : (m.subType === 'info') ? 'info' : 'error'
		}));

в параметре type есть условие, но под это условие всегда попадает только warning и error, а info нет.

Где ошибка в условии? Как правильнее будет?
  • Вопрос задан
  • 68 просмотров
Решения вопроса 2
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Ошибок нет. Код должен работать правильно.
Скобки лишние, но в целом они не мешают.

UPD
Вообще можно упростить этот частный случай. По сути возвращается то, что уже в subtype, кроме случая с warning
{
  type: m.subType === 'warning' ? 'warn' : m.subType
}


А лучше вообще отказаться и использовать приходящее значение

{
  type: m.subType,
}
Ответ написан
Комментировать
Немає помилок
const messages = [{
    id: 1,
    subType: 'warning'
  },
  {
    id: 2,
    subType: 'info'
  },
  {
    id: 3,
    subType: 'some'
  },
];
const newMessages = messages.map(({id, subType}) => ({
  explanation: '',
  messageid: id,
  type: (subType === 'warning') ? 'warn' : (subType === 'info') ? 'info' : 'error'
}));

console.log(newMessages);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы