[英]Insert object in array of object javascript
我有两个对象数组:
{
"records": [
{
"lead_id": 97195,
"user_id": 613,
"segment_id": 0,
"email_address": "asdf@lkasd.asd",
"full_name": "asdf asdf",
},
{
"lead_id": 97197,
"user_id": 613,
"segment_id": 0,
"email_address": "asdfasdfasdf@asdasdasd.com",
"full_name": "asdf asdf",
}
]
}
第二个对象数组:
{
"userTags": [
{
"lead_id": 97195,
"user_tag_id": 93,
"tag_name": "Julien",
},
{
"lead_id": 97195,
"user_tag_id": 93,
"tag_name": "test123"
},
{
"lead_id": 97197,
"user_tag_id": 93,
"tag_name": "General Business"
},
{
"lead_id": 97197,
"user_tag_id": 93,
"tag_name": "PAREB CLRB"
}
]
}
我想在特定的lead_id
对象上插入标记名,例如在记录中有"lead_id" : 97195
和 userTags "lead_id" : 97195
,这是我的捕手或提示,应该连接到该对象数组上,但我不知道如何在records
列表中插入tag_name
对象
示例输出
"records": [
{
"lead_id": 97195,
"user_id": 613,
"segment_id": 0,
"email_address": "asdf@lkasd.asd",
"full_name": "asdf asdf",.
"tag_name": "Julien",
}]
为此,您可以使用map
和find
遍历您的记录,并添加tag_name
场,你在找到userTags
对象。
但是,你似乎有多个tag_name
为同一lead_id
。 我已经添加了两个例子,一个是采取tag_name
第一个匹配的lead_id
和一个收集所有tag_name
所有匹配lead_id
:
const records = { "records": [ { "lead_id": 97195, "user_id": 613, "segment_id": 0, "email_address": "asdf@lkasd.asd", "full_name": "asdf asdf" }, { "lead_id": 97197, "user_id": 613, "segment_id": 0, "email_address": "asdfasdfasdf@asdasdasd.com", "full_name": "asdf asdf" } ] }; const userTags = { "userTags": [ { "lead_id": 97195, "user_tag_id": 93, "tag_name": "Julien" }, { "lead_id": 97195, "user_tag_id": 93, "tag_name": "test123" }, { "lead_id": 97197, "user_tag_id": 93, "tag_name": "General Business" }, { "lead_id": 97197, "user_tag_id": 93, "tag_name": "PAREB CLRB" } ] }; const newRecords = { records: records.records.map(record => { const lead_id = record.lead_id; const tag = userTags.userTags.find(tag => tag.lead_id === lead_id); return { ...record, tag_name: tag.tag_name }; }) }; const newRecordsMult = { records: records.records.map(record => { const lead_id = record.lead_id; const tags = userTags.userTags .filter(tag => tag.lead_id === lead_id) .map(tag => tag.tag_name); return { ...record, tag_name: tags }; }) } console.log(newRecords, newRecordsMult);
这是我的方式......也许很粗糙,但它有效:)
let main_array = {
"records": [
{
"lead_id": 97195,
"user_id": 613,
"segment_id": 0,
"email_address": "asdf@lkasd.asd",
"full_name": "asdf asdf",
},
{
"lead_id": 97197,
"user_id": 613,
"segment_id": 0,
"email_address": "asdfasdfasdf@asdasdasd.com",
"full_name": "asdf asdf",
}
]
}
let tag_array = {
"userTags": [
{
"lead_id": 97195,
"user_tag_id": 93,
"tag_name": "Julien",
},
{
"lead_id": 97195,
"user_tag_id": 93,
"tag_name": "test123"
},
{
"lead_id": 97197,
"user_tag_id": 93,
"tag_name": "General Business"
},
{
"lead_id": 97197,
"user_tag_id": 93,
"tag_name": "PAREB CLRB"
}
]
}
//loop main array
main_array["records"].forEach(function(item){
let lead_id = parseInt(item.lead_id);
let temp_array = [];
//loop tags
tag_array["userTags"].forEach(function(tag){
if(lead_id === parseInt(tag.lead_id)){
temp_array.push(tag.tag_name);
}
});
item.tags = temp_array;
});
console.log(main_array);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.