@GeorgeKay

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

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

[
   {
      "id":1,
      "status":"CREATED"
   },
   {
      "id":2,
      "status":"CANCELED"
   }
]
  • Вопрос задан
  • 68 просмотров
Пригласить эксперта
Ответы на вопрос 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',
  },
};
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 00:55
500 руб./за проект
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час