Как это решить?
Как это сделать?
Есть объект тикет (ticket) с атрибутами impact и priority. Обязательно заполнен хотя бы один из них (могут быть заполнены оба атрибута). Требуется написать скрипт, вычисляющий значение title по следующему правилу: если заполнен impact, то пишется "Влияние " и указывается значение impact; если заполнен priority, то "Приоритет " и указывается значение priority; если заполнены оба, то указывается и влияние и приоритет через запятую. Примеры: "Влияние 1"; "Приоритет 2"; "Влияние 3, приоритет 4". |
Rude,
Object.entries() |
рони, так наименование свойств же известно, зачем Object.entries() использовать?
var titles = { impact: 'Влияние', priority: 'Приоритет' }, tickets = [{ priority: '', impact: 1 }, { priority: 0, impact: 1 }, { priority: 2, impact: 1 }].map(function(ticket) { return ticket.title = Object.keys(titles).map(function(key) { return !ticket[key].toString().length ? null : titles[key] + ': ' + ticket[key]; }).filter(function(val) { return !!val; }).join(', '), ticket;//.map и .filter лучше на .reduce заменить }); console.log(tickets); Rude, вы такие темы в разделе "Работа" в следующий раз создавайте. |
Rude,
или массив и два if |
Цитата:
|
Цитата:
Спасибо за помощь:thanks: |
:write:
var titles = { impact: 'Влияние', priority: 'Приоритет' }, ticket = {impact: 1, priority: 2}, title = Object.entries(ticket).map( ([a,b]) => `${titles[a]} ${b}`); alert(title); |
Часовой пояс GMT +3, время: 19:29. |