javascript - 是否可以在 Javascript 对象中添加动态字段名称?
问题描述
我正在尝试添加动态字段名称并根据该名称更新值。在我的情况下,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 是我上面提到的事件。
解决方案
可以将动态键添加到 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'}
推荐阅读
- iframe - Ace 编辑器在 iframe 中不起作用(react-frame-component)
- javascript - JQUERY/AJAX-multiply classes based on content number
- python - Python拆分函数和数组
- java - 在 Java 中从 Object 类型转换为 Integer 类型时出现 ClassCastException
- python - 无法部署 Django + Heroku
- aws-api-gateway - AWS Lambda 对来自源“localhost:3000”的“...”的 XMLHttpRequest 的访问已被 CORS 策略阻止
- java - 检查字符串是否包含制表符以及任何非空白字符
- r - 如何加载在保存到 www 目录的 Shiny 服务器中创建的新 PNG 文件?
- .net-core - UWP 上 netstandard 的文件访问被拒绝
- scala - 向量汇编器到密集向量的显式转换