Javascript 是否需要创建对象才能指定两层属性?
我正在尝试使用一个API,该API要求我在预定义的结构中构造请求主体。它充满了多层层次结构,我不确定创建这样一个数据结构的最佳方式是什么 下面的代码可以工作,但看起来并不整洁。关于如何开展这项工作的普遍共识是什么 作为参考,我正在调用以下API: 如果我删除了Javascript 是否需要创建对象才能指定两层属性?,javascript,object,google-apps-script,Javascript,Object,Google Apps Script,我正在尝试使用一个API,该API要求我在预定义的结构中构造请求主体。它充满了多层层次结构,我不确定创建这样一个数据结构的最佳方式是什么 下面的代码可以工作,但看起来并不整洁。关于如何开展这项工作的普遍共识是什么 作为参考,我正在调用以下API: 如果我删除了entity.properties[property]={}我的代码错误,但那一行并不适合我 哦,值得一提的是,由于我使用的是谷歌应用程序脚本,所以我只能使用JavaScript 1.6。 非常感谢您花时间回答这个问题。您没有明确地局限于J
entity.properties[property]={}
我的代码错误,但那一行并不适合我
哦,值得一提的是,由于我使用的是谷歌应用程序脚本,所以我只能使用JavaScript 1.6。
非常感谢您花时间回答这个问题。您没有明确地局限于JS 1.6-应用程序脚本有一些细节,即
Object.create
,Object.defineProperty/ies
,这可能很有用。一般来说,(对我来说)最可维护的代码是您已经拥有的代码,因为意图非常清楚,即使对于那些不熟悉JavaScript的人来说也是如此。可能有用的是@tehhowch的一部分谢谢!
var transaction = {
transaction: transactionId,
mode: 'TRANSACTIONAL',
mutations: []
};
var entity = {
key: {
kind: kind
},
properties: {}
};
if (args.entityId) {
entity.key.id = args.entityId;
}
for (var property in args) {
if (args[property].dataType) {
var propertyType = args[property].dataType + 'Value';
entity.properties[property] = {};
entity.properties[property][propertyType] = args[property].value;
}
}
var mutation = new Object();
mutation[operationType] = entity;
transaction.mutations.push(mutation)