【问题标题】:how to merge array of objects in angular?如何以角度合并对象数组?
【发布时间】:2020-11-06 12:46:03
【问题描述】:

我想根据“序列”合并这两个数组。如果两个数组中的序列号相同,那么我想合并那个 2 对象。我不知道该怎么做。谁能帮帮我?

dynamicArray =[
{id:null,sequence:  1, fromTime: "5:00",toTime:"6:00"},
{id:null,sequence:  2, fromTime: "8:00",toTime:"9:00"}]; ```

```contactDetails = [

{id:null, sequence:  1, contactName: "jen",mobileCode:"2",mobile:"556"},
{id:null, sequence:  1, contactName: "dali",mobileCode:"",mobile:"557"}]; ```

**the output should be **

``` result =[
{id:null,sequence:  1, fromTime: "5:00",toTime:"6:00",contactName: "jen",mobileCode:"2",mobile:"556"},

{id:null,sequence:  1, fromTime: "5:00",toTime:"6:00",contactName: "dali",mobileCode:"",mobile:"557"},

{id:null,sequence:  2, fromTime: "8:00",toTime:"9:00"}]```

【问题讨论】:

  • 如果不相同,则将该对象推入数组,如序列 2

标签: arrays angular object


【解决方案1】:

我创建了一个工作代码 sn-p

var dynamicArray = [
  {id:null,sequence:  1, fromTime: "5:00",toTime:"6:00"},
  {id:null,sequence:  2, fromTime: "8:00",toTime:"9:00"},
];

var contactDetails = [
  {id:null, sequence:  1, contactName: "jen", mobileCode:"2", mobile:"556"},
  {id:null, sequence:  1, contactName: "dali", mobileCode:"", mobile:"557"},
];

var mergedArray = dynamicArray.map(dynamic => {
  var mergedWithContact = contactDetails.filter(contact => contact.sequence === dynamic.sequence).map(contact => ({ ...dynamic, ...contact}));
  return mergedWithContact.length > 0 ? mergedWithContact : dynamic;
}).flat();

console.log(mergedArray);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 2018-11-10
    • 2021-09-18
    • 1970-01-01
    • 2019-01-05
    相关资源
    最近更新 更多