Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.12.2018, 08:41
Новичок на форуме
Отправить личное сообщение для Rude Посмотреть профиль Найти все сообщения от Rude
 
Регистрация: 21.12.2018
Сообщений: 2

Как это решить?
Как это сделать?

Есть объект тикет (ticket) с атрибутами impact и priority. Обязательно заполнен хотя бы один из них (могут быть
заполнены оба атрибута).
Требуется написать скрипт, вычисляющий значение title по следующему правилу: если заполнен impact, то
пишется "Влияние " и указывается значение impact;
если заполнен priority, то "Приоритет " и указывается значение priority; если заполнены оба, то указывается и
влияние и приоритет через запятую.
Примеры: "Влияние 1"; "Приоритет 2"; "Влияние 3, приоритет 4".
Ответить с цитированием
  #2 (permalink)  
Старый 21.12.2018, 09:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Rude,
Object.entries()
Ответить с цитированием
  #3 (permalink)  
Старый 21.12.2018, 09:47
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,736

рони, так наименование свойств же известно, зачем 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, вы такие темы в разделе "Работа" в следующий раз создавайте.

Последний раз редактировалось Nexus, 21.12.2018 в 09:55.
Ответить с цитированием
  #4 (permalink)  
Старый 21.12.2018, 09:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Rude,
или массив и два if
Ответить с цитированием
  #5 (permalink)  
Старый 21.12.2018, 09:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от Nexus
зачем Object.entries() использовать?
можно любой цикл, entries было как один из вариантов
Ответить с цитированием
  #6 (permalink)  
Старый 21.12.2018, 09:59
Новичок на форуме
Отправить личное сообщение для Rude Посмотреть профиль Найти все сообщения от Rude
 
Регистрация: 21.12.2018
Сообщений: 2

Сообщение от Nexus
вы такие темы в разделе "Работа" в следующий раз создавайте.
Учту, я тут новенький.

Спасибо за помощь
Ответить с цитированием
  #7 (permalink)  
Старый 21.12.2018, 10:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075


var titles = {
        impact: 'Влияние',
        priority: 'Приоритет'
    },
ticket = {impact: 1,
          priority: 2},
title =  Object.entries(ticket).map( ([a,b]) => `${titles[a]} ${b}`);
alert(title);
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В контекстном меню автоматически исчезает пункт меню. Как это "вылечить"? Исмаил Прокопенко Firefox/Mozilla 3 13.09.2016 22:10
В callback функции теряется контекст. Как это обойти? xintrea AJAX и COMET 4 02.06.2013 11:40
Web-разработчик ищет работу Neumann Работа 30 24.05.2013 18:59
БД, JS и PHP или как всё это сложить lazerru Общие вопросы Javascript 2 15.04.2013 17:20
http://gigalit.info - Мои контакты Маэстро Ваши сайты и скрипты 70 08.12.2011 03:12