Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在对象javascript的数组中插入对象_Javascript_Lodash - Fatal编程技术网

在对象javascript的数组中插入对象

在对象javascript的数组中插入对象,javascript,lodash,Javascript,Lodash,我有两个对象数组: { "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,

我有两个对象数组:

{
"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\u id
对象上插入标记名,例如在记录中有
“lead\u id”:97195
和用户标签
“lead\u id”:97195
,这是我的捕捉器或提示,应该连接到该对象数组上,但我不知道如何在
记录
列表中插入
tag\u 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
对记录进行迭代,并添加在
userTags
对象中找到的
tag\u name
字段

但是,对于同一个
lead\u id
,您似乎有多个
tag\u name
。 我添加了两个示例,一个采用第一个匹配的
lead\u id
tag\u name
,另一个收集所有匹配的
lead\u id
的所有
tag\u name

const记录={
“记录”:[
{“lead_id”:97195,“user_id”:613,“segment_id”:0,“email_address”:asdf@lkasd.asd,“全名”:“asdf asdf”},
{“lead_id”:97197,“user_id”:613,“segment_id”:0,“email_address”:asdfasdfasdf@asdasdasd.com,“全名”:“asdf asdf”}
]  
};
const 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”}
]
};
常数newRecords={
记录:records.records.map(记录=>{
const lead_id=record.lead_id;
const tag=userTags.userTags.find(tag=>tag.lead\u id===lead\u id);
返回{…记录,tag_name:tag.tag_name};
})
};
常量newRecordsMult={
记录:records.records.map(记录=>{
const lead_id=record.lead_id;
const tags=userTags.userTags
.filter(tag=>tag.lead\u id===lead\u id)
.map(tag=>tag.tag_name);
返回{…记录,tag_name:tags};
})
}

console.log(newRecords,newRecordsMult)这是我的方式……可能很粗糙,但它很有效:)


这是唯一的预期输出?您在中有2个lead_id记录和4个lead_iduserTags@GovindParashar嗨,实际上,所有具有相同lead_id的人都将加入记录数组,我只是简短地说,对不起,如果让它更混乱Hi mate感谢您向我展示解决方案,我有一个问题要返回{…record,tag_name:tag.tag_name};如何执行?@Mike Victoria,{…record}将记录的内容传播到新对象中,称为传播操作符:
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);