Можно ли добавить имя поля Dynami c в объект * Javascript? - PullRequest
1 голос
/ 16 апреля 2020

Я пытаюсь добавить имя поля динамического c и обновить значение в соответствии с этим. В моем случае eventType имеет 4 типа доставки, отправки, открытия, клика. И когда я пытаюсь использовать этот код, я получил единственный eventType в виде строки.

 const event = JSON.parse(req.body);
  // const xyz = JSON.parse(JSON.parse(req.body.Message))
  // console.log(xyz)
    const message = JSON.parse(event.Message);
    console.log(message)
    const eventType = message.eventType;


  await db.collection('Emails').doc(message.mail.commonHeaders.to[0]).set(
   { eventType: message,
    timestamp: Date.now(),
  },
  { merge:false },);

это код конечной точки, а eventType - это событие, о котором я упоминал выше.

1 Ответ

1 голос
/ 16 апреля 2020

Dynami c ключи могут быть добавлены к объекту JSON.

Пример:

var key = 'age'
var keys = ['name','gender'];
var data = {};

Теперь вот ловушка, если вы хотите определить ключ во время выполнения, вы нужно использовать [], потому что оно позволяет выражению вычислять то есть

data[keys[0]] = 'Rohan'
//keys[0] will interpreted to name during the execution
//data ==>> {name:'Rohan'}

, тогда как

data.key = '19'
//"key" will be treated as an individual entity i.e. as a valid key name
//data ==>> {key:'19'}
//whereas
data[key] = '19'
//results in data ==>> {age:'19'}

И также обратите внимание, что если вы заключите двойное "" внутри [], оно также рассматриваться как отдельное лицо

data['key'] = '19'
// data ==>> {key:'19'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...