Как это решить?
Как это сделать?
Есть объект тикет (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:12. |