[英]JavaScript build a dynamic object
我有一个名为onversation
,它包含以下内容:
{
"conversationId": "adbabc54-3308-436d-a48b-932f4010d3c6",
"participantId": "415651e6-f0a5-4203-8019-4f88c3ed9cd5"
}
我还有一个名为person
的对象,其中包含以下内容:
{
firstname: "fred",
surname: "smith",
age: "21",
gender: "male"
}
我想要的是一个名为result
的组合对象,看起来像这样
result {
conversation {
conversationId : adbabc54-3308-436d-a48b-932f4010d3c6,
participantId : 415651e6-f0a5-4203-8019-4f88c3ed9cd5
},
person {
firstname: "fred",
surname: "smith",
age: "21",
gender: "male"
}
}
我将如何动态地执行此操作,从而使用var'conversation'的名称和对象'person'的名称来构建结果对象?
同样,对话或人的长度可以是任何长度。 如果可能的话,使用纯JavaScript,但可以使用下划线等。
试试吧
var result = {
'conversation': conversation,
'person': person
}
动态
var result = {}
result['person'] = person
要么
resilt.person = person
如果我正确理解了您的问题,则可以使用大多数浏览器(可能是除IE11之外的所有浏览器)都支持的对象简写表示法 ,以进一步简化解决方案:
var conversation = { conversationId : 'adbabc54-3308-436d-a48b-932f4010d3c6', participantId : '415651e6-f0a5-4203-8019-4f88c3ed9cd5' }; var person = { firstname: "fred", surname: "smith", age: "21", gender: "male" }; var result = { conversation, person } console.log(result)
编辑:如果仅变量名称更改,并且其属性名称保持不变或具有某种唯一键,则可以在对象的键上使用for循环 。
例如:
var someConversationVariableName = { conversationId : 'adbabc54-3308-436d-a48b-932f4010d3c6', participantId : '415651e6-f0a5-4203-8019-4f88c3ed9cd5' }; var somePersonVariableName = { firstname: "fred", surname: "smith", age: "21", gender: "male" }; var result = { someConversationVariableName, somePersonVariableName } for (key in result) { if(result[key]['conversationId']) { console.log(`Found conversation object. It's name is: ${key}`); } else if(result[key]['firstname']) { console.log(`Found person object. It's name is: ${key}`); } }
如果需要推迟添加对象,则也可以采用以下方法:
var conversation =
{
conversationId : 'adbabc54-3308-436d-a48b-932f4010d3c6',
participantId : '415651e6-f0a5-4203-8019-4f88c3ed9cd5'
};
var person =
{
firstname: "fred",
surname: "smith",
age: "21",
gender: "male"
};
var result = {};
result['conversation'] = conversation;
result['person'] = person;
console.log(result);
这必须工作:
var conversation =
{
"conversationId": "adbabc54-3308-436d-a48b-932f4010d3c6",
"participantId": "415651e6-f0a5-4203-8019-4f88c3ed9cd5"
}
var person=
{
firstname: "fred",
surname: "smith",
age: "21",
gender: "male"
}
var result = {
'conversation': conversation,
'person': person
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.