У меня есть рабочий код для создания объекта на лету:
// dummy sources
const departments = [
{ code: 'DA', title: 'Department A' },
{ code: 'DB', title: 'Department B' },
{ code: 'DC', title: 'Department C' },
{ code: 'DD', title: 'Department D' },
]
const reviewers = ['Department A','Pub Lunches','Department C','Department D']
const validationObject = {}
// actual code
reviewers.forEach( (reviewer, index) => {
const dept = departments.find( dept => dept.title === reviewer) || { code: reviewer.replace(/[ ]/g, '_').replace(/[/W]/g, '') }
validationObject[dept.code.toLowerCase()+'_reviewer'] = {blah:'blah'}
})
console.log(validationObject)
Это работает, но выглядит создание фиктивного объекта только для устранения ошибки при получении элемента code
с неопределенным результатом (когда в отделах нет соответствующего элемента) неловко.
Есть ли какой-то идиоматический c способ сделать это, которого мне не хватает?