【发布时间】:2019-01-30 22:14:38
【问题描述】:
在下面的代码中,我可以获得对 text000 对象的引用,但我需要捕获它的子数组作为我的目标负载。获得对密钥的引用后,如何捕获其子项?
完整的对象如下:
activeItem = [{"dnd":{"index":0,"active":true,"group":"common","label":"Text (000)","type":"text"},
"json":{"schema":{"properties":{"text000":{"title":"Text (000)","type":"string"}},"required":["text000"]},"layout":[{"key":"text000","description":"","floatLabel":"auto","validationMessages":{"required":"Required"}}]}}]
获取对我正在使用的“text000”键的引用:
const myEl = Object.keys(this.activeItem.json.schema.properties); // points to text000
我需要提取该键的内容/子项 > {"title":"Text (000)","type":"string"} 以将其用作此操作的目标有效负载。
text000 元素是动态的,所以我需要它的引用,这就是我使用 Object.keys() 方法指向它的原因。
请随意教我使用正确的名称来指代这些元素。例如,不确定如何针对键 text000 准确引用 > {"title":"Text (000)","type":"string"}。那是键的“孩子”、“价值”、“内容”还是什么?
更新:
console.log('TRY: ', this.activeItem.json.schema.properties[0]);
// Returns undefined
console.log('TRY2: ', this.activeItem.json.schema.properties);
// Returns {"text000":{"title":"Text (000)","type":"string"}}
我需要一些东西来回报:
{"title":"Text (000)","type":"string"}
解决方案感谢@jaredgorski:
const properties = this.activeItem.json.schema.properties;
const propertiesKeys = Object.keys(properties);
const propertiesKeysFirstVal = Object.keys(properties)[0];
const logProperties = properties[propertiesKeysFirstVal];
console.log('PROPERTIES KEYS:', propertiesKeys);
console.log(
'VALUES OF FIRST PROPERTIES KEY:',
propertiesKeysFirstVal
);
console.log('RESULT:', logProperties);
PROPERTIES KEYS: ["text000"]
wrux-wrux-form-builder.js:1782 VALUES OF FIRST PROPERTIES KEY: text000
wrux-wrux-form-builder.js:1783 RESULT: {title: "Text (000)", type: "string"}
【问题讨论】:
标签: javascript arrays json angular