Задать вопрос
@GeorgeKay

Как привязать значение переменной к определенному значению свойства объекта?

У меня есть массив, допустим внутри лежит несколько объектов, у каждого есть свойство статус, у первого объекта статус равен строке "ready" и второго статус равен строке "canceled". Я хочу создать 2 константы, со значением "готово" и "отменено", и в зависимости от того чему равен статус, выводить нужную константу на фронте. Как это сделать, есть примеры?

[
   {
      "id":1,
      "status":"CREATED"
   },
   {
      "id":2,
      "status":"CANCELED"
   }
]
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Alexandre888
@Alexandre888
Javascript-разработчик
let arr = [
   {
      "id":1,
      "status":"CREATED"
   },
   {
      "id":2,
      "status":"CANCELED"
   }
];

const first = arr[0]["status"], second = arr[1]["status"];

// либо же перебрать весь массив, поместить результаты в другой массив

let arr2 = [];
for (let key in arr) arr2.push(arr[key]["status"])
Ответ написан
Комментировать
sergiks
@sergiks Куратор тега JavaScript
♬♬
const data = [{"id":1,"status":"CREATED"},{"id":2,"status":"CANCELED"}];

const RU_CREATED = 'СОЗДАНО';
const RU_CANCELED = 'ОТМЕНЕНО';

const translate = (data, lang) => data.forEach(item => {
  console.log(`id: ${item.id}, status: ${eval(lang + '_' + item.status)}`);
});

translate(data, 'RU');
// id: 1, status: СОЗДАНО
// id: 2, status: ОТМЕНЕНО
В проде конечно не стоит использовать eval(), и вместо этого сделать не константы, а «словарь» — объект с ключами как статусы, и значениями их переводами:
const dict = {
  RU: {
    CREATED: 'СОЗДАНО',
    CANCELED: 'ОТМЕНЕНО',
  },
  DE: {
    CREATED: 'ERSTELLT',
    CANCELED: 'ABGESAGT',
  },
};
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы