繁体   English   中英

JavaScript构建动态对象

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM